【Excel】DATEDIFで#NUM!になる時の対処|開始日・終了日と日数の引き算

【Excel】DATEDIFで#NUM!になる時の対処|開始日・終了日と日数の引き算
🛡️ 超解決

日付計算の#NUM!と、マイナスの日数が出ることは別です。DATEDIFは開始日が終了日より後だと#NUM!になりますが、単純な引き算は負の日数を返せます。何を求める式なのかを確認してから直してください。

ADVERTISEMENT

1. DATEDIFなのか単純な引き算なのかを見る

開始日がA2、終了日がB2なら、=DATEDIF(A2,B2,"D")は開始日が後の場合にエラーになります。一方、=B2-A2は順序に応じて正または負の数を返します。開始日と終了日が同日なら日数差は0です。

9月10日から9月12日は2日、逆方向の単純減算はマイナス2日。DATEDIFで開始日を12日、終了日を10日にすると#NUM!。
日付を入れ替えたりABSで符号を消す前に、開始日と終了日の意味を確認します。
症状 確認先
DATEDIFで#NUM! 開始日と終了日の順序、単位の指定
引き算で負の日数 順序が業務上正しいか
####と表示 列幅と結果セルの日付・時刻書式
※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. 日付を入れ替える前に入力の意味を確かめる

退職日が入社日より前など、データの誤りが疑われる場合は、元の記録を確認します。MINとMAXで自動的に並べ替えたり、ABSで符号を消したりすると、入力ミスが正常な期間に見えてしまいます。

確認中であることを残すなら、=IF(A2>B2,"日付を確認",DATEDIF(A2,B2,"D"))のように分けます。未入力や文字列の日付を許容する表では、その検査も別に行います。

3. 単純な日数差は引き算で求める

経過日数なら終了日から開始日を引き、結果セルを「標準」または「数値」にします。開始日と終了日の両日を数えたい場合の+1は、日数差とは別の集計規則です。必要な定義を先に決めます。

日付に時刻が含まれると小数の日数になることがあります。整数表示で小数が見えなくなっているだけかもしれないので、時刻を含む業務データでは丸め方も確認します。

4. 年数・月数は満年数・満月数として扱う

DATEDIFの「Y」「M」は単なる年や月の番号の差ではなく、期間内の満年数・満月数を求めます。「MD」は既知の制約があるためMicrosoftも利用を推奨していません。

年齢や勤続年数を作る場合は、基準日、月末、うるう日など、実際に扱う条件で確認します。順序を入れ替えればどんな業務にも正しい結果になるわけではありません。

5. ####を直すために日付システムを変えない

負の差が日付・時刻の書式で表示できない場合、まず結果を数値の日数として表示します。1904日付システムへ切り替える方法は、ブック内の日付や別ブックとの受け渡しに影響するため、表示修復の第一選択にはしません。

文字列の日付や古い年代を扱う場合は、表示形式だけで有効な日付になるとは限りません。ISNUMBERで型を確認し、対象年代を扱える方法を選びます。

6. 前後関係が業務に合っているか確認する

開始前、同日、翌日、月末を含む例で結果を照合します。日付間の距離だけが必要な場合に限りABSによる絶対値が候補になります。締切超過など符号に意味がある計算では、負数を消さずに残します。

参考: Microsoft公式: DATEDIF、日付間の差、日付システム

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】