エクセル・ツール活用

エクセル 日数 計算|DATEDIF関数の使い方と注意点

エクセル 日数 計算で開始日と終了日の差だけを求めるなら、終了日セルから開始日セルを引く方法が最も簡単です。年・月・日を単位に分けたいときはDATEDIF関数を使います。ただし、DATEDIFは「両端を含む対象日数」や「土日祝日を除く営業日数」を自動で表す関数ではありません。

この記事では、Excel DATEDIFの基本構文、D・M・Yなどの単位、文字列日付によるエラー、月末・うるう年の検算方法をセル例と一緒に整理します。最後に、Excelで一覧を管理する場合と、単発で確認する場合の日数計算ツールの使い分けも紹介します。

エクセルの日付セルからDATEDIFで日数を求める編集図
開始日と終了日を日付としてそろえてから、日数の単位と表示方法を決めます。

先に答え:目的別に式を選ぶ

  • 日付の差:=B2-A2。終了日B2から開始日A2を引く。
  • DATEDIFの日数:=DATEDIF(A2,B2,"D")。暦日の差を明示する。
  • 満月・満年:"M"や"Y"を使い、部分月・部分年を切り捨てる。
  • 営業日:NETWORKDAYS.INTLで週末と祝日範囲を指定する。

エクセル 日数 計算をDATEDIFで行う基本

開始日をA2、終了日をB2に入力した場合、DATEDIFの基本形は=DATEDIF(A2,B2,"D")です。最後の"D"は、2つの日付の間の日数を意味します。A2が2026/1/1、B2が2026/7/1なら、日付の差は181日です。セルを日付として認識できていれば、月の日数を手計算する必要はありません。

同じ結果を単純な引き算で求めるなら=B2-A2です。日数だけを一覧で処理する場合は引き算が短く、式の意図を「期間の関数」として残したい場合や、年・月単位へ広げる場合はDATEDIFが便利です。どちらを使っても、開始日と終了日の意味、両端を含めるかどうかは別に決めます。

目的式の例結果の意味
日付の差=B2-A2開始日から終了日までの境目の数
DATEDIFの日数=DATEDIF(A2,B2,"D")暦日ベースの経過日数
両端を含む対象日数=B2-A2+1開始日と終了日を1日ずつ数える定義
満年数=DATEDIF(A2,B2,"Y")誕生日などを基準にした満年

「4月1日から4月10日まで」は日付の差なら9日、両端を含む日数なら10日です。式が合っていても、相手が求めている指標が違えば答えは一致しません。結果を共有するときは、日付範囲と「差」または「対象日数」のラベルを添えてください。

DATEDIFのD・M・Y・YM・MD・YDを使い分ける

DATEDIFの3番目の引数は、何を単位に数えるかを指定します。単位を変えると同じ日付でも数字の意味が変わるため、セルの見出しに単位を残すと取り違えを防げます。

単位式意味と注意点
D=DATEDIF(A2,B2,"D")期間全体の日数。暦日で営業日ではない。
M=DATEDIF(A2,B2,"M")満月数。部分月は切り捨てる。
Y=DATEDIF(A2,B2,"Y")満年数。年齢や勤続年数に使う。
YM=DATEDIF(A2,B2,"YM")年を除いた残りの月数。
MD=DATEDIF(A2,B2,"MD")年と月を除いた残りの日数。月末は検算する。
YD=DATEDIF(A2,B2,"YD")年を除いた日数。周年までの確認に使う。

「1年2か月3日」の表示例

年月日に分けるなら、=DATEDIF(A2,B2,"Y")&"年"&DATEDIF(A2,B2,"YM")&"か月"&DATEDIF(A2,B2,"MD")&"日"のように組み合わせます。ただし、年・月・日を足して総日数に戻せるとは限りません。総日数が必要ならD単位、暦の内訳が必要ならY・YM・MDというように表示目的を固定します。

エクセル 日数 計算で単位を選ぶときは、総日数なのか満月・満年なのかを先に決めます。

日付の差と両端を含む日数を比較する境界条件の編集図
日付の差と対象日数は別の定義です。月末やうるう年では式と目的を並べて検算します。

Excelで日数計算するセルの準備と手順

計算式の前に、入力セルを日付としてそろえます。A列を開始日、B列を終了日、C列を日付の差、D列をDATEDIFの結果とすると、複数行をコピーしても見出しと結果の対応が分かりやすくなります。

  1. A2とB2に年・月・日が分かる日付を入力する。
  2. C2に=B2-A2を入れ、日付の差を確認する。
  3. D2に=DATEDIF(A2,B2,"D")を入れ、同じ結果になるか照合する。
  4. 両端を含む場合だけE2に=B2-A2+1を入れる。
  5. 月数・年数が必要な行だけM・Y・YM・MDの式を追加する。

エクセル 日数 計算の入力表は、開始日・終了日・方式・結果を別列に分けると、後から条件を確認できます。

文字列の日付を計算しないために

「2026年4月1日」のような文字が入ると、Excelが文字列として扱うことがあります。表示形式を日付に変えても計算できない場合は、=DATE(2026,4,1)のようにDATE関数で作るか、入力をISO形式にそろえます。結果セルが「1900/07/01」のような日付表示になったら、表示形式を「標準」または「数値」に変更して181のような日数で確認してください。

エクセル 日数 計算:普通の引き算とDATEDIFの使い分け

日数だけなら引き算が短く、年・月・日の内訳ならDATEDIFが向いています。引き算は負の数も表示できるため、終了日が開始日より前の行を見つけるチェックになります。一方、DATEDIFは開始日が後の日付だとエラーになることがあるので、入力順を先に確認します。

比較項目日付の引き算DATEDIF
式の短さ=B2-A2で短い単位の指定が必要
総日数求めやすいD単位で求める
満年・満月別の処理が必要Y・M単位で求められる
入力順の逆転負の値で気づきやすい#NUM!になることがある
営業日・祝日別関数が必要DATEDIFでは処理しない

Excelで月次レポートを作る場合は、開始日・終了日・方式・結果を列で分けます。式をコピーするだけでなく、見出しに「暦日」「営業日」「両端を含む」などの条件を書いておくことが実務上の安全策です。エクセル 日数 計算を一覧で運用するなら、引き算で異常値を見つけてからDATEDIFで内訳を表示します。

エクセル 日数 計算:月末・うるう年・開始日が後の日付

誤差は月末と2月で起こりやすくなります。2024年2月28日から3月1日までの日付の差は2日ですが、2025年の同じ日付なら1日です。両端を含む対象日数なら、それぞれ3日と2日になります。DATEDIFのD単位、普通の引き算、対象日数を並べて確認してください。

「1月31日から1か月後」のような月単位は、30日を足す処理とは違います。DATEDIFのM単位は満月数を返すため、月末補正を含む契約更新や請求締め日のルールをそのまま置き換えないでください。

開始日が2026年7月1日、終了日が2026年1月1日のように逆転している場合は#NUM!になる可能性があります。過去方向を数える意図なら、開始・終了を入れ替えるのか、=ABS(B2-A2)で絶対値にするのかを決めます。逆算が目的なら何日前計算ツールの方が条件を説明しやすいことがあります。エクセル 日数 計算の月末検算では、普通の引き算とDATEDIFを並べます。

土日祝日を除く日数はNETWORKDAYSを使う

DATEDIFは暦日数の差を求める関数です。土日や祝日を除く営業日数なら、=NETWORKDAYS(A2,B2,$F$2:$F$20)を使います。F列に対象年の祝日、振替休日、会社独自の休業日を必要に応じて追加します。エクセル 日数 計算で営業日を扱う場合は、方式を列名に明記します。

土曜日・日曜日以外の週末を設定する場合はNETWORKDAYS.INTLを使います。休日範囲が別年度、文字列、空欄になっていると結果が変わるため、休日リストの更新日も残します。単発なら営業日計算ツールで条件を入力する方法もあります。

エクセル 日数 計算の結果が合わないときの確認表

1日違うときは、式より前提条件を疑います。次の順番で照合すると原因を切り分けやすくなります。エクセル 日数 計算の確認では、開始日・終了日・両端を含むかを記録します。

確認項目起こりやすい問題対処
開始日・終了日入力順や年が違う両方の年月日を明記する
表示形式日数が日付に見える結果セルを標準・数値にする
文字列日付式が計算されないDATE関数や日付変換でそろえる
数え方9日と10日が混在する日付の差か対象日数かを明記する
休日条件営業日だけ違う週末設定と祝日範囲を照合する
月末・2月長い期間で1日ずれるうるう年と単位を別に検算する

共有時は「開始日」「終了日」「式」「単位」「結果」「確認日」を一緒に記録します。手計算の検算には期間計算の基本も参照できます。

一覧表を作るときの列設計

案件や契約を複数行で管理する場合は、開始日・終了日・日付の差・両端を含む日数・営業日数を別の列に分けます。結果だけを一つの列に上書きすると、後で「9日」と「10日」のどちらが正しいかを判断できなくなるためです。方式列に「暦日」「対象日」「営業日」、単位列に「D」「M」「Y」を記録すると、フィルターで同じ条件の行だけを再計算できます。

式をコピーする前に、サンプルとして同じ日、月末、うるう年、年またぎの4行を残しておくと、休日リストや入力規則を更新したときの回帰チェックになります。新しい年度の祝日を追加した場合は、営業日数だけが変わり、DATEDIFのD単位は変わらないことも照合してください。確認者と確認日を別列に残せば、数式を変更した履歴も説明しやすくなります。

エクセル 日数 計算 FAQ

Excelで日数を計算する一番簡単な式は?

開始日がA2、終了日がB2なら、日付の差は=B2-A2です。DATEDIFなら=DATEDIF(A2,B2,"D")を使います。両端を含む日数は目的に応じて差に1を加えます。

DATEDIFのD・M・Yは何を表しますか?

Dは日数、Mは満月数、Yは満年数です。YM・MD・YDは残りの期間で、総日数とは違います。

DATEDIFで#NUM!が出る原因は?

開始日が終了日より後、または空欄・文字列の可能性があります。入力順とセルの認識を確認してください。

DATEDIFは月末やうるう年でも使えますか?

使えますが、月数・残日数では月末の扱いを確認します。2月29日を含む場合は普通の引き算と並べて検算します。

DATEDIFと日付の引き算は同じですか?

D単位では似た結果になります。引き算は短く、DATEDIFは満年・満月の内訳に広げやすい点が違います。

土日祝日を除いた日数をDATEDIFで計算できますか?

DATEDIFではなくNETWORKDAYSまたはNETWORKDAYS.INTLを使います。祝日一覧と週末設定を範囲で指定してください。

日付が計算されず数字になりません。どうすればよいですか?

日付セルが文字列、または結果セルが日付表示の可能性があります。DATE関数と表示形式を確認し、標準・数値で検算します。

まとめ:式より先に、数える対象を決める

エクセル 日数 計算では、日付の差なら引き算またはDATEDIFのD単位、満年・満月ならY・M単位、営業日ならNETWORKDAYSを選びます。両端を含むか、2月29日を含むか、開始日が後になっていないかも確認します。

開始日・終了日・方式・単位・結果を同じ表に残すと、式を変更しても比較できます。単発の確認には日数計算ツールや営業日計算ツールを併用してください。

参考リンク

エクセルDATEDIF日数計算日付計算