エクセル 日数 計算|DATEDIF関数の使い方と注意点
エクセル 日数 計算で開始日と終了日の差だけを求めるなら、終了日セルから開始日セルを引く方法が最も簡単です。年・月・日を単位に分けたいときはDATEDIF関数を使います。ただし、DATEDIFは「両端を含む対象日数」や「土日祝日を除く営業日数」を自動で表す関数ではありません。
この記事では、Excel DATEDIFの基本構文、D・M・Yなどの単位、文字列日付によるエラー、月末・うるう年の検算方法をセル例と一緒に整理します。最後に、Excelで一覧を管理する場合と、単発で確認する場合の日数計算ツールの使い分けも紹介します。

先に答え:目的別に式を選ぶ
- 日付の差:
=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の結果とすると、複数行をコピーしても見出しと結果の対応が分かりやすくなります。
- A2とB2に年・月・日が分かる日付を入力する。
- C2に
=B2-A2を入れ、日付の差を確認する。 - D2に
=DATEDIF(A2,B2,"D")を入れ、同じ結果になるか照合する。 - 両端を含む場合だけE2に
=B2-A2+1を入れる。 - 月数・年数が必要な行だけ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日を含むか、開始日が後になっていないかも確認します。
開始日・終了日・方式・単位・結果を同じ表に残すと、式を変更しても比較できます。単発の確認には日数計算ツールや営業日計算ツールを併用してください。
参考リンク
- Microsoft サポート(Excel):関数やセルの表示形式を確認する公式案内。