ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.007

2つの日付の期間が何年かを求める 《DATEDIF》

2003/2007/2010/2013/2016/2019

2つの日付の期間を求めるには、DATEDIF 関数(分類: 日付/時刻)を使います。
そこそこ使われる関数なのですが、DATEDIF 関数 は[関数の貼り付け]ダイアログ ボックスの一覧にはありませんので、式を手入力しなければなりません。

例えば、セルA2に「2000/4/1」、セルB2に「2011/4/1」と入力されていて、この2つの日付の期間が何年あるかを求めたいとします。

DATEDIF 関数 は3つの引数を持ちます。1つ目の引数に開始日、2つめの引数に終了日、3つ目の引数には単位を指定します。

3つ目の引数について、今回は何年あるかを求めるので、最後の引数には年単位である指定をします。
単位は、ダブルクォーテーションで囲んでアルファベットで指定します。
年単位の場合は「"Y"」と指定し、全体の式は次のようになります。

  =DATEDIF(A2,B2,"Y")

DATEDIF関数

答えは11年です。関数の構造としてはわかりやすいですね。

ここで、DATEDIF 関数 の特徴を押さえておきましょう。
DATEDIF 関数 では、丸1年を経過してはじめて1年とされます。つまり、
セルA2に「2000/4/2」と入っていた場合、まだ丸11年は完了していませんので、答えは10年となります。

しかしお仕事で求める内容によっては、DATEDIF関数ではなく、年同士の数値の引き算で11年という答えを求めたい場合もあります。
その場合の式は、YEAR関数で日付の年を求めて引き算します。

  =YEAR(B2) - YEAR(A2)

どちらのケースであるのかを確認して関数を使いましょう。

さて、引数を少しアレンジをしてみましょう。
例えば「2000/1/1」から今日現在までが何か月あったかを求める場合、終了日に今日を求める TODAY 関数 を指定します。

  =DATEDIF("2000/1/1",TODAY(),"M")

3つ目の引数については、下記の<ヘルプmemo>をご覧ください。

この DATEDIF 関数 が、[関数の挿入]ダイアログ ボックス の一覧に含まれないのは、他の表計算ソフトとの互換性を保つために用意された関数であるからです。
一覧に掲載しようとすると、いくつかの問題が発生するため、長年はずされています。
いつか、一覧に表示されるようになるといいですね。

ヘルプmemo

<DATEDIF 関数>(関数の分類: 日付/時刻関数)
開始日から終了日までの期間を単位に合わせて返します。

数式:
=DATEDIF(開始日, 終了日, 単位)
引数:
・[開始日] ...期間の開始日を示す文字列、シリアル値またはセル参照
・[終了日] ...期間の終了日を示す文字列、シリアル値またはセル参照
・[単位] ...戻り値の単位を文字列で指定
"Y" ...期間内の満年数
"M" ...期間内の満月数
"D" ...期間内の満日数
"MD" ...1ヶ月未満の日数
"YM" ...1年未満の月数
"YD" ...1年未満の日数

関連ヘルプ

セルに入力されている数値を時刻の表示にする 《TIME》
時刻の「8:30」を「8.5」と数値に変換する
日付を表す8桁の数値データを、6桁の和暦にしたい 《DATE・TEXT》
月の日数、月末を求める 《EOMONTH》