今回は、Excel(エクセル)のDATEDIF(デイトディフ)関数を使って、2つの日付間の年数や月数、日数を自動計算する方法を確認していきます。会員の在籍期間やキャンペーン実施期間の日数を求めたり、生年月日から年齢を計算したりといった活用ができるので、覚えておいて損はないでしょう。

本連載では、「よく使うけど忘れやすいMicrosoft Officeの操作」をキーワードに、Officeアプリケーションの使い方を解説していきます。記事の制作には、執筆時点で最新の状態にアップデートしたMicrosoft Office 2016を使用しています

DATEDIF関数で年数や月数、日数を計算

「DATEDIF」は、日付を入力した2つのセルを参照して、その間の年数や月数、日数を計算してくれる関数です。今回は、入会日の日付からTODAY関数で表示した当日までの期間を求めてみます。

基本形は、=DATEDIF(開始日,終了日,単位)

セルに入力した日付から本日までの期間を計算するため、まずはTODAY関数を使って今日の日付を表示させます。セルを選択(今回の例ではA1)したら、数式バーに「=TODAY()」と入力(図1)、[Enter]キーを押すと今日の日付がA1セルに表示されます(図2)。

  • (図1)A1セルを選択して数式バーに「-TODAY()」と入力します

  • (図2)A1セルに今日の日付が表示されました

今回の例では、B4セルに入会した日付を入力しています。この入会日から今日までの年数をDATEDIF関数で求めてみましょう。数式を入力したいセル(ここではC4)を選択したら、数式バーに「=DATEDIF(」と入力し(図3)、開始日が入力されているB4セルをクリックして数式に反映します(図4)。「,」(カンマ)で区切ったら、終了日にあたるA1セルをクリックして数式に反映(図5)。さらに「,」で区切り、「"Y"」と入力して「)」で閉じます(図6)。この「"Y"」が年の単位となります。

[Enter]キーを押して確定させると、入会日(B4セル)から今日(A1セル)までの期間の年数が表示されます(図7)。

  • (図3)D4セルを選択して数式バーに「=DATEDIF(」と入力します

  • (図4)B4セルをクリックして数式に開始日を入力します

  • (図5)「,」で区切ってA1セルをクリックします

  • (図6)「=DATEDIF(B4,A1,"Y")」という数式を完成させます

  • (図7)入会日(B4セル)から今日(A1セル)までの年数が表示されました

年数は「"Y"」、月数は「"M"」で求める

DATEDIF関数の基本形は「=DATEDIF(開始日,終了日,単位)」となり、「単位」の部分を変えることで年数、月数、日数を計算できます。先ほどの数式の単位部分を変えて「=DATEDIF(B4,A1,"M")」にすると(図8)、日付間の月数が計算できます(図9)。

  • (図8)「=DATEDIF(B4,A1,"M")」と入力します

  • (図9)入会日(B4セル)から今日(A1セル)までの月数が表示されました

日数は「"D"」で指定

「"Y"」(年数)、「"M"」(月数)とくれば想像が付くと思いますが、日数を求めるには「"D"」を指定します。先ほどの数式を「=DATEDIF(B4,A1,"D")」に変更して(図10)、入会日から今日までの日数を表示させてみましょう(図11)。

  • (図10)「=DATEDIF(B4,A1,"D")」と入力します

  • (図11)入会日(B4セル)から今日(A1セル)までの日数が表示されました

週数を求めるには、日数を7で割る

DATEDIF関数では日付間の年数、月数、日数は計算できますが、週数を計算することはできません。この場合は日数を求める数式を変更して、「=DATEDIF(B4,A1,"D")/7」という数式を入力します(図12)。最後に付け加えた「/7」で日数を7で割って週数を求めています。[Enter]キーを押して確認してみましょう(図13)。

  • (図12)「=DATEDIF(B4,A1,"D")/7」と入力します

  • (図13)入会日(B4セル)から今日(A1セル)までの週数が表示されました

数式にTODAY関数を組み込むことも可能

ここまでは、TODAY関数でA1セルに今日の日付を表示させて参照してきましたが、DATEDIF関数の「終了日」部分にTODAY関数を組み込んで今日までの期間を計算することも可能です。今回の例ならば、「=DATEDIF(B4,TODAY(),"Y")」と入力することで、入会日(B4セル)から今日までの年数を表示できます(図14)(図15)。作成したい表の構成に合わせて使い分けるとよいでしょう。

  • (図14)「=DATEDIF(B4,TODAY(),"Y")」と入力します

  • (図15)開始日(B4)のみを参照して今日までの期間の年数が表示されます