2010年05月25日

DATEDIF関数

Excelには、経過年数や月数などを求める DATEDIF という関数があります。

これはヘルプに出てこない関数で、マイクロソフトのサポート外の関数という位置づけだと困りますので、普段、セミナーではあまりご紹介していないのですが、先日のセミナーでご質問を頂きましたので、簡単にご紹介したいと思います。

この関数はもともとLotus1-2-3という表計算ソフトにある@DATEDIF関数を、Excelに移行した場合にエラーにならないようにするための関数です。
そのためExcelで使用することを想定していないのか、Excel2003や2007ではヘルプで引数を確認することができません。

関数の背景を考えると、開発の納品時など自分の手元を離れてしまうようなファイルの中では他の方法で求めるようにしていますが、使い方がとても簡単ですので便利だとは思います。

DATEDIF関数の書式は以下のようになります。

(構文)
 DATEDIF(開始日, 終了日, 単位)

(単位)
 第三引数の「単位」は、以下の文字列が使えます。
  年数を求める場合は "Y"
  月数を求める場合は "M"
  日数を求める場合は "D"
  開始日と終了日の年と月を無視して「日」の部分のみの差を求める場合 "MD"
   (1ヶ月未満の日数)
  開始日と終了日の年と日を無視して「月」の部分のみの差を求める場合 "YM"
   (1年未満の月数)
  開始日と終了日の年を無視して「日」の部分のみの差を求める場合 "YD"
   (1年未満の日数)

一例をご紹介すると
(例1)
 =DATEDIF("2010/5/25","2011/5/24","Y")
 これは2つの日付の間が1年に満たないので 0 が返ってきます。

(例2)
 =DATEDIF("2010/5/25","2011/5/25","Y")
 ちょうど1年経過しているので 1 が返ってきます。

 ※上記の" "で囲まれた部分をセル番地に置き換えれば、
   他の関数と同様にセルを使った計算が可能です。


DATEDIF関数を利用すると、
 「生年月日から、年齢を求める」
 「商品が発売になってからの販売年数を求める」
 「入社・入会してからの年数を求める」
などに利用することができます。

また、上記を上手く組み合わせると、
 「リースを開始してから何年何カ月経過したかを求める」
など、色々な場合に活用できます。

上記の「何年何カ月経過したか」を計算する場合はいくつか方法がありますが、例えば以下の計算式で求められます。

(例)
 =DATEDIF("2010/5/25","2011/6/25","Y")&"年"
   &DATEDIF("2010/5/25","2011/6/25","YM")&"カ月"
 ※本画面上では2行ですが入力時は1行です。

(意味)
 "2010/5/25"から"2011/6/25"までの経過年数("Y")と
 文字列 "年" と
 "2010/5/25"から"2011/6/25"までの1年未満の月数("YM")と
 文字列 "カ月"を 結合して表示する。
 という意味になります。

ついでにご紹介すると、他にもヘルプには表示されない関数があります。
NUMBERSTRING関数もその例で、数値を漢数字に置き換えて表示するものです。

(例1)
 =NUMBERSTRING(1,2)
 数字の 1 を 漢字の「壱」 に変換して表示します。
 第一引数が 変換したい数値
 第二引数が 変換方法 です。
 
ヘルプにない関数を利用する時には、
公開されていない引数を調べる必要があったり、
他の人とファイルを共同で利用する場合などには配慮が必要かとは思いますが、
ちょっとした業務では、面倒な計算式を組み立てなくても簡単に答えが出るものもあり、使い方次第だと思います。
 
posted by Three bit com at 10:00| Excel(エクセル)