Excelで日数計算する3つの方法

Excelで2つの日付の差(日数)を出すには、主に3つの方法がある。それぞれの特徴を理解して、用途に合った方法を選ぼう。

Excelのセル引き算で日数計算する数式の例 - =B1-A1

方法1:セルの引き算(=B1-A1)

もっとも簡単で直感的な方法。終了日から開始日を引くだけで日数が出る。

A1 2026/1/1 B1 2026/12/31 C1 364 開始日 終了日 =B1-A1 → 364日
=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までの土日を除いた日数が返る。

ExcelのNETWORKDAYS関数で営業日数を計算する例

祝日も除外する方法

祝日リストをセルに入力しておき、第3引数に指定すれば、土日に加えて祝日も除外できる。

=NETWORKDAYS(A1, B1, D1:D20)

D1からD20に祝日の日付を入力しておく。たとえば元日(1/1)、成人の日(1月第2月曜)、建国記念の日(2/11)などを列挙する。

注意:Excelは日本の祝日データを自動では持っていない。自分で祝日リストを作成・管理する必要がある。営業日計算ツールなら日本の祝日に自動対応。

年数・月数で表示するDATEDIF関数の使い方

DATEDIF関数は第3引数(単位)を変えることで、日数だけでなく年数や月数でも2つの日付の差を計算できる。勤続年数の計算や年齢計算にも使える。

ExcelのDATEDIF関数の使い方 - 年数・月数・日数の計算
パラメータ 意味 数式の例 結果の例(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を使うのは操作が面倒だ。目的が「日付の差を知りたい」だけなら、専用のオンラインツールのほうが速い。

機能 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条)では初日不算入が原則だが、日常的な「何日間」の計算では初日を含めることが多い。

Excelを開かずに日数計算

数式を覚える必要なし。日付を2つ選ぶだけで、日数・営業日数・和暦まで自動計算。日本の祝日にも対応。今すぐ使える無料ツール。

日数計算ツールを使う →