Web・ガジェット・写真とか

エクセルで日付を計算してくれるDATEDIF関数

開催中 Amazonブラックフライデーの攻略法。お得な買い方

エクセルで日付を計算するには、DATEDIF関数を使う。

DATEDIF関数の概要

書式

DATEDIF(開始日,終了日,"単位")

サンプル書式

A1セルB1セルサンプル書式表示結果概要
2013/1/12013/12/31=DATEDIF(A1,B1,"Y")0A1からB2の日付までの「年」の満年数を計算。例では、2014/1/1 で満年の1年になる。
2013/1/12013/12/31=DATEDIF(A1,B1,"M")11A1からB2の日付までの「月」の満月数を計算。例では、2014/1/1 で12ヶ月になる。
2013/1/12013/12/31=DATEDIF(A1,B1,"D")364A1からB2の日付までの「日」の満日数を計算。2014/1/1 で365日になる。
2013/1/12014/12/31=DATEDIF(A1,B1,"MD")30A1からB2の日付までの満了「日数」を計算。日付の月と年は無視される。
2013/1/12014/12/31=DATEDIF(A1,B1,"YM")11A1からB2の日付までの満了「月数」を計算。日付の日と年は無視される。
2013/1/12014/12/31=DATEDIF(A1,B1,"YD")364A1からB2の日付までの「年数」を計算。日付の年は無視される。
2014/12/312013/1/1=DATEDIF(A1,B1,"D")#NUM!A1の開始日は、B1の終了日よりも過去の日付でないとエラーになる。

DATEDIF関数の解説

DATEDIF関数は、指定した日付の日数を計算してくれるエクセル関数。
引数の単位は、「”(ダブルクオーテーション)」で囲み、YEARの「Yで年」、MONTHの「Mで月」、DAYの「Dで日」をそれぞれ日数を求めることができる。

DATEDIF関数利用時の注意点

「満了日」の取り扱い

注意するべき点はサンプル書式の概要にも記載の通り、「満」に満たないので指定した日付までの満了日が結果として表示される。

例えば、2013/1/1から2013/12/31までだと満了しているのは364日となり、2014/1/1で満了日が365日となる。
2013/1/1から2013/12/31までを1年と数えたい場合には、下記のように終了日に「1」を足してあげる。
=DATEDIF(A1,B1+1,"Y")

関数ウィザードに表示されない

同様に、DATEDIF関数は、関数ウィザードには表示されないので、式で直接入力する必要がある。

DATEDIF関数は、他の表計算アプリケーションとの互換を保つために用意された関数のため、関数ウィザードには表示されない。
参照先:http://support.microsoft.com/kb/414668/ja

開始日は、終了日よりも過去の日付で

また、開始日は終了日よりも過去の日付でないとエラーになるので、気をつける必要がある。

年齢や勤続年数の計算

DATEDIF関数を使えば、年齢や勤続年数などの期間を簡単に計算することができる。

サンプル書式
=DATEDIF(A1,B1,"Y")&"歳"&DATEDIF(A1,B1,"YM")&"ヶ月"&DATEDIF(A1,B1,"YD")&"日"
A1セルB1セル表示結果
1985/4/282013/5/2828歳1ヶ月30日

DATEDIF関数と文字列を「&(アンパサンド)」でつなげることで上記のように「○○歳○ヶ月○日」のように表示することができる。
「歳」のように文字列は、「”(ダブルクオーテーション)」で囲いる。

セル参照による日数計算

単純に日数だけの計算でしたら、下記のようにセルを参照して引き算することでも日数を求めることができる。

A1セルB1セルサンプル書式表示結果
2013/1/12013/12/31=B1-A1364