エクセルに DATEDIF (デイトディフ)という関数があります。これは日付の差を求めるもので、とても便利な関数のひとつです。
たとえばこんな感じで使うことができます。
- 生年月日と現在の日付を元に年齢を求める
- 入社日と現在の日付を元に在籍年数を求める
- プロジェクトの開始日と終了日から作業期間を求める
- サポート契約の開始日と解約日から契約期間を求める
- 製品の購入日と現在の日付から使用年数を求める
DATEDIF 関数の使い方
DATEDIF 関数は以下のように式を作ります。
=DATEDIF (開始日, 終了日, 単位)
開始日と終了日の順番を正しく指定しないとエラーになります。それから ”単位” の指定がちょっとややこしいのですが、いくつかの指定方法があります。
”単位”の指定方法
“Y“ 年数の差を返す
“M“ 月数の差を返す
“D“ 日数の差を返す
“YM“ 年の部分を無視して月数の差のみを返す
“YD“ 年の部分を無視して日数の差のみを返す
“MD“ 年と月の部分を無視して日数の差のみを返す
例として、開始日:2021/4/1 終了日:2024/6/30 とした場合のそれぞれの結果はこのようになります。
”Y“・”M“・”D” は、シンプルに2021/4/1 と 2024/6/30 の年数・月数・日数の差をそれぞれ返しています。
”YM“は、4/1 と 6/30 の月数の差なので ”2” を返しています。
”YD“は、4/1 と 6/30 の日数の差なので ”90” を返しています。
”MD“は、4/1 と 6/30 の日にちの部分だけの差なので ”29” を返しています。
DATEDIF 関数はちょっとクセがある?
このように実務でも使えそうな場面がいろいろある DATEDIF 関数ですが、エクセルでこの関数を使おうとして ”=date” のように入力しても、候補として DATEDIF が出てきません。
たとえば COUNTIF 関数なら、”=COU” のように入力すれば候補として出てくるんですが、DATEDIF は出てこない。
なので、自分で ”=datedif(” のように手入力しないといけません。
以前から出てこない関数として有名ではあるのですが、どうやらMicrosoftが公式な関数としてサポートしていないからみたいです。
元々、Lotus 1-2-3 との互換性を保つために入れたものらしいのですが、Microsoft的に公式な関数として扱っていないということは、日にちの計算においてうまくいかない部分があるのかもしれません。
日にちの扱いについては「1904年から計算する」というオプションもありまして、これは初期の Macintosh コンピューターの設計が関わるものですが、Lotus1-2-3との互換性なども絡んでややこしい話になっているようです。
そんな感じでDATEDIF関数を使うときにも影響してくるものと思われます。
といっても広く使われていますし、通常の使用においては特に問題ないものだと考えられます。
※参考までにMicrosoftサポートのページです。
>Excel の 1900 年と 1904 年の日付システムの違い
https://learn.microsoft.com/ja-jp/office/troubleshoot/excel/1900-and-1904-date-system
関数名について
最後に、DATEDIF関数の名前についてですが、これは「Date Difference」の略です。
以前よく「DATED・IF」(デイテッド・イフ)」と言っているケースを見かけましたが、これだとちょっと意味がよく分からないですね。正しくは「日付(Date)」の「差(Difference)」です。
DATEDIF関数は実務でもよく使われる関数なので、ひととおり押さえておくとよいかと思います。
ニューバランスのおすすめスニーカー
New Balance Japanのストアをチェック!