Warning: Undefined array key "snippetVars" in /home/pxa/wnkhs.net/public_html/wp-content/plugins/post-snippets/src/PostSnippets/PSallSnippets.php on line 721
Warning: Undefined array key "snippetVars" in /home/pxa/wnkhs.net/public_html/wp-content/plugins/post-snippets/src/PostSnippets/PSallSnippets.php on line 721

Excelで日数を計算させたいことがあります。
シリアル値を上手に使えればよいのですが、専用の関数に頼ってもよいですよね!

Excel
DATEDIF関数
関数リストには出てこない、裏コードのような存在です。
知っていればうまく活用できますよね!
候補には表示されない裏コードです。
DATEDIF関数
Lotus 1-2-3 から引き継がれてきている関数です。
かつて存在していた表計算ソフトを使いこなしていた方にはおなじみの関数ということねのですね。
DATEDIF(開始日,終了日,計算単位)
引数は3つです。
開始日と終了日には、それぞれ日付を指定します。
計算単位を指定することで、日数計算だけでなく、月数や年数も計算できる仕様です。日数や月数を無視した計算も可能なので、何年何か月のような丸めなどの表現も可能です。
詳しくは公式の書式を見ていただくとして。
開始日と終了日の差を計算
以下のような場合の日数計算の例です。
- 開始日: B2
- 終了日: C2

D2は以下。
=DATEDIF(B2,C2,"y")
E2は以下。
=DATEDIF(B2,C2,"m")
F2は以下。
=DATEDIF(B2,C2,"d")
D4の関数では、第3引数に「ym」を指定しています。
何年間かと、何日間か、は無視され、何か月差かだけが返されます。
56年9か月ということですね。
計算単位を指定可能だが
第3引数の指定には、年数、月数、日数を無視した結果を返すような指定も可能です。

公式サイトでは「MD」の使用は非推奨になっています。
使用方法はよく確認しておきましょう。
上図の例だと、2月10日で4か月です。
終了日が2月6日なので3か月を返しています。
しっかり計算されていますね!
使えない?(エラーになっている可能性)
自分でやら書いたのですが。

「!NUM」が返ってしまいまして。
サポート外の関数なのかと思ってしまいました。
原因は単純で、開始日と終了日が逆だったというだけです。
開始日より前(以前)の日付を終了日に指定すると、エラーになります。
過去日付でも未来日付でも、前後関係はしっかり確認です。
年齢計算、ライセンス切れまでの日数計算、カウントダウンなど、活用できそうです。

ご意見やご感想などお聞かせください! コメント機能です。