DATEDIF() は、Date + Dif の略で、Lotus 1-2-3 から引き継がれた互換関数です。Microsoft はこれを Excel バージョン 2000 で採用しましたが、この関数の動作を説明している唯一のバージョンは Excel バージョン 2000 です。この関数はすべての Excel バージョンで使用できますが、Excel 2000 以降は「数式」メニューや「ヘルプ」メニューには表示されません。スプレッドシートの使用経験が Lotus から始まった方(多くのユーザーがそうでしょう)にとって、この古き良き Lotus 関数が今もなお健在であることを知って喜ぶことでしょう。
この関数の目的は、ユーザーが指定した開始日から終了日までの日数、月数、または年数の間の時間を計算することです。この関数の引数は以下のとおりです。
Start_date: Excel の日付シリアル番号形式での開始日
End_date: Excel の日付シリアル番号形式の終了日
単位: 使用する時間単位 (年、月、または日)
構文は次のようになります: =DATEDIF(開始日,終了日,単位)
「単位」は、テキストコードであるunit引数で指定します。例えば、以下のコードは、これらの値が関数の構文でどのように使用されるかを説明しています。
差を完全な年数で指定するには、「Y」の文字を使用します
月単位で差を指定するには「M」の文字を使用します
日数差を指定するには「D」の文字を使用します
日数の違いを示すために「MD」という文字を使用し、月と年は無視します
月の差を示すために「YM」という文字を使用し、日と年は無視します
日数の違いを示すために「YD」という文字を使用し、年は無視します
DATEDIF() 関数を使用すると、人の年齢を年、月、日で判断したり、会社の創立記念日を計算したり、家電製品やコンピュータ機器の使用年数を調べたり、2 つの日付間の日数、月数、年数を判断したり、クリスマスまでの日数をカウントダウンしたり、その他さまざまなことができます。
日付形式
この数式に日付を入力するには、次の 4 つの方法があります。
1. シリアル番号として保存します。これはMicrosoft Excel独自の日付保存方法で、計算に使用できます。日付を入力し、「標準」形式を使用すると、Excelのシリアル番号として表示されます。

例えば、2016年6月16日(開始日)から2016年10月31日(終了日)までの月数を求めるには、次の数式を入力します:=DATEDIF(42537,42674,”m”)。この数式の結果は4か月です。

注意: Excel では、Windows PC では 1900 年 1 月 1 日より前の日付を計算できません。また、Apple Mac システムでは 1904 年 1 月 1 日より前の日付を計算できません。
2. セル参照として:つまり、セルのアドレスをポイントしたり、直接入力したりできます。例えば、2010年10月10日(セルA5)から2011年11月11日(セルB5)までの日数を求める場合、この例の数式は =DATEDIF(A5,B5,”d”) です。この数式の結果は397日です。

3. テキスト文字列として:つまり、日付を引用符で囲んで入力します。日付は任意の形式で入力できます。ただし、年を省略して月と日のみを入力すると、Excelは現在の年とみなします。この例の数式は =DATEDIF(“12/12/2012”, “12/25/2015”, “y”) です。この数式の結果は3年間となります。

4. または、TODAY()関数やNOW()関数などの他の関数への応答として。例えば、NOW()からクリスマスまで何日あるか知りたい場合は、次の数式を使って調べます:=DATEDIF(NOW(),”12/25/2016”,”d”)。答えは70日です。
注:NOW() または TODAY() 関数を使用する場合、答えは毎日変わることに注意してください。つまり、明日このスプレッドシートを開くと、答えは1日少なくなります。

結果を切り上げまたは切り捨てる
1. DATEDIF() 関数は、常に (デフォルトで) 最も近い月または年の整数に切り捨てられます。
2. 月または年を切り上げて計算したい場合は、数式に半月または半年を追加します。例えば、半月(15日)の場合は=DATEDIF(A19,B19+15,”m”)、半年(183日)の場合は=DATEDIF(A21,B21+183,”y”)と入力します。これで、計算結果は最も近い月または年に切り上げられます。

DATEDIF() 関数のネスト
1. DATEDIF() 関数をネストしたり、上記のように TODAY() や NOW() などの他の Excel 関数と組み合わせたり、関数自体をネストして 3 つの引数(年数、月数、日数)すべてを取得したりすることもできます。例えば、2011 年 3 月 15 日から 2016 年 12 月 7 日までの年数、月数、日数を取得するには、実際の日付ではなくセル参照を使用して次の数式を入力します。=DATEDIF(A23,B23,"y") &" years, "&DATEDIF(A23,B23,"ym") &" months, "&DATEDIF(A23,B23,"md") &" days"。答えは 5 年 8 か月 22 日です。

注:セル参照を使用する方が、=DATEDIF(“3/15/11”, “12/7/16”, “d”) のように日付を数式にハードコードするよりも常に便利です。新しい日付を入力するか、古い日付の上にコピーするだけで、スプレッドシート上の日付を簡単に変更できます。日付が数式にハードコードされている場合は、数式を一つずつ開いて編集する必要があります。また、ハードコードされた数式をコピーすると、コピーしたすべてのセルに同じ日付が入力されてしまいます。
2. ウーピー・ゴールドバーグの現在の年齢を正確に知りたい場合は、セルA24に彼女の誕生日(1955年11月13日)を入力し、セルE24に次の数式を入力します:=DATEDIF(A24,TODAY(),”y”)&” years, “&DATEDIF(A24,TODAY(),”ym”)&” months, “&DATEDIF(A24,TODAY(),”md”)&” days。答えは(数か月前にこのスプレッドシートを作成した時点では)60歳11ヶ月3日です。もちろん、今日このスプレッドシートを開いたら、もっと長い時間になっているでしょう。

DATEDIF() 関数に関する追加情報については、この Microsoft Office サポート ページを参照するか、オンラインで検索するか、Microsoft Excel 2000 リファレンス マニュアルをまだ持っている収集家な友人を探してください。