Excelで日数計算する3つの方法
Excelで2つの日付の差(日数)を出すには、主に3つの方法がある。それぞれの特徴を理解して、用途に合った方法を選ぼう。
方法1:セルの引き算(=B1-A1)
もっとも簡単で直感的な方法。終了日から開始日を引くだけで日数が出る。
=B1-A1 結果がシリアル値(数字のままの日付)で表示される場合は、セルの書式を「標準」に変更すれば日数として表示される。
方法2:DAYS関数
Excel 2013以降で使えるDAYS関数。引き算と同じ結果が得られるが、「日数を計算している」ということが数式から明確に伝わる。
=DAYS(B1, A1) 注意:DAYS関数の引数は =DAYS(終了日, 開始日) の順番。開始日が先ではないので注意。
方法3:DATEDIF関数
DATEDIF関数は日数だけでなく、年数や月数でも差を返せる。日数を出す場合は第3引数に "D" を指定する。
=DATEDIF(A1, B1, "D") DATEDIF関数は関数の挿入ダイアログには表示されない「隠し関数」だが、手入力すれば問題なく使える。
3つの方法の比較
| 方法 | 数式 | 対応バージョン | 特徴 |
|---|---|---|---|
| セルの引き算 | =B1-A1 | 全バージョン | 最もシンプル。すぐ使える |
| DAYS関数 | =DAYS(B1,A1) | Excel 2013〜 | 意図が明確。可読性が高い |
| DATEDIF関数 | =DATEDIF(A1,B1,"D") | 全バージョン | 年数・月数にも対応。隠し関数 |
営業日数を計算するNETWORKDAYS関数
土日を除いた営業日数を計算したい場合は、NETWORKDAYS関数を使う。プロジェクトの稼働日数や納期計算で重宝する関数だ。
=NETWORKDAYS(A1, B1) この数式で、A1からB1までの土日を除いた日数が返る。
祝日も除外する方法
祝日リストをセルに入力しておき、第3引数に指定すれば、土日に加えて祝日も除外できる。
=NETWORKDAYS(A1, B1, D1:D20) D1からD20に祝日の日付を入力しておく。たとえば元日(1/1)、成人の日(1月第2月曜)、建国記念の日(2/11)などを列挙する。
注意:Excelは日本の祝日データを自動では持っていない。自分で祝日リストを作成・管理する必要がある。営業日計算ツールなら日本の祝日に自動対応。
年数・月数で表示するDATEDIF関数の使い方
DATEDIF関数は第3引数(単位)を変えることで、日数だけでなく年数や月数でも2つの日付の差を計算できる。勤続年数の計算や年齢計算にも使える。
| パラメータ | 意味 | 数式の例 | 結果の例(2024/4/1〜2026/9/28) |
|---|---|---|---|
"Y" | 満年数 | =DATEDIF(A1,B1,"Y") | 2(年) |
"M" | 満月数 | =DATEDIF(A1,B1,"M") | 29(か月) |
"D" | 日数 | =DATEDIF(A1,B1,"D") | 911(日) |
"YM" | 年を除いた月数 | =DATEDIF(A1,B1,"YM") | 5(か月) |
"MD" | 月を除いた日数 | =DATEDIF(A1,B1,"MD") | 27(日) |
"YD" | 年を除いた日数 | =DATEDIF(A1,B1,"YD") | 181(日) |
たとえば「2年5か月27日」と表示したい場合は、3つの数式を組み合わせる。
=DATEDIF(A1,B1,"Y") & "年" & DATEDIF(A1,B1,"YM") & "か月" & DATEDIF(A1,B1,"MD") & "日" 年数・月数・日数をまとめて計算したいなら、期間計算ツールがExcelの数式なしでワンクリックで計算できる。
Excelとオンラインツールの比較
Excelは高機能だが、日数計算だけのためにExcelを開くのは手間がかかる。特にスマホでExcelを使うのは操作が面倒だ。目的が「日付の差を知りたい」だけなら、専用のオンラインツールのほうが速い。
| 機能 | Excel | 日数計算ツール |
|---|---|---|
| 操作の簡単さ | 数式の入力が必要 | 日付を選ぶだけ |
| 営業日計算 | NETWORKDAYS + 祝日リスト手動作成 | ワンクリック |
| 和暦対応 | 書式設定が必要 | 自動対応 |
| 祝日の自動除外 | 手動でリスト管理が必要 | 日本の祝日を自動反映 |
| モバイル対応 | 操作しづらい | スマホで快適に使える |
| インストール | Excel(有料)が必要 | 不要。ブラウザだけでOK |
Excelなしで日数計算
数式を覚えなくても、日付を2つ選ぶだけ。祝日の自動除外も対応。
Excel日数計算でよくあるエラーと対処法
Excelの日数計算でつまずきやすいポイントと、その解決方法をまとめた。
#VALUE! エラーの原因
日数計算で #VALUE! エラーが出る主な原因は、セルに入力された値がExcelに「日付」として認識されていないこと。次のケースが多い。
- 日付が文字列として入力されている(セルの左揃えになっている場合は文字列の可能性が高い)
-
日付の形式が正しくない(例:
2026.1.1はExcelでは日付として認識されないことがある) - セルにスペースや不可視文字が含まれている
対処法は、日付のセルを選択して Ctrl + 1 でセルの書式設定を開き、「日付」形式に変更すること。あるいは
=DATEVALUE() 関数で文字列を日付に変換できる。
日付が数値(シリアル値)で表示される場合
日数計算の結果が「45658」のような大きな数値で表示される場合、結果セルの書式が「日付」になっている。セルの書式を「標準」または「数値」に変更すれば、正しい日数が表示される。
逆に、日付を入力したのに「45658」と表示される場合は、セルの書式を「日付」に変更する。Excelは内部的に日付をシリアル値(1900年1月1日からの経過日数)で管理している。
エクセル日数計算でよくある質問
DATEDIF関数はExcelの「隠し関数」で、関数の挿入ダイアログやオートコンプリートには表示されない。これはLotus
1-2-3との互換性のために残されている関数で、公式ドキュメントにも記載が少ない。しかし、セルに直接
=DATEDIF(A1,B1,"D") と手入力すれば問題なく動作する。
NETWORKDAYS関数を使う。=NETWORKDAYS(開始日, 終了日) で土日を除いた営業日数が計算できる。祝日も除外したい場合は、第3引数に祝日リストのセル範囲を指定する。ただし日本の祝日は手動で入力する必要がある。祝日を自動で除外したいなら、営業日計算ツールが便利。
このサイトの日数計算ツールを使えば、ブラウザだけで日数計算ができる。Excelのインストールは不要。開始日と終了日を選ぶだけで、日数・営業日数・和暦表示まで自動で計算される。スマホからも快適に操作可能。
DAYS関数は2つの日付間の日数だけを返すシンプルな関数。引数の順番は
=DAYS(終了日, 開始日)。DATEDIF関数は日数に加えて年数("Y")や月数("M")でも差を計算できる多機能な関数。引数の順番は
=DATEDIF(開始日, 終了日, 単位) と逆なので注意。日数だけならDAYS関数のほうがシンプルだが、年月日で表示したいならDATEDIF関数を使う。
初日を含むかどうかの違い。Excelの =B1-A1 は初日を含まない計算(片落とし)になる。たとえば1月1日から1月3日の場合、=B1-A1 は「2日」を返す。初日を含めて「3日」としたい場合は =B1-A1+1 とする。法律の期間計算(民法140条)では初日不算入が原則だが、日常的な「何日間」の計算では初日を含めることが多い。