ExcelのDAYS関数の使い方|日数計算と実務活用を解説

スポンサーリンク

Excelで「2つの日付の間が何日あるか」を計算したいこと、ありますよね。引き算でもできますが、表示形式が日付のままになって数値として扱えなかったり、見た目が崩れたりと地味にハマるポイントがあります。

そんなときに使いたいのが DAYS関数 です。この記事では、DAYS関数の基本から実務での活用パターン、似た関数との使い分けまで解説します。

この記事は次のような人におすすめ

– 2つの日付の日数差を正確に求めたい
– 引き算とDAYS関数の違いがわからない
– DATEDIF関数やNETWORKDAYS関数との使い分けを知りたい

DAYS関数とは?

DAYS関数は、2つの日付の間の日数を求める関数です。読み方は「デイズ」で、英語の Days(日数) がそのまま名前になっています。

「開始日から終了日まで何日か」をシンプルに返してくれます。Excel 2013以降で使える関数です。

たとえば、2026年1月1日から2026年3月31日までの日数は 89日 です。DAYS関数なら1つの数式でこの答えが出ます。

ExcelのDAYS関数の書き方

基本構文

=DAYS(終了日, 開始日)

引数の説明

引数必須/省略可説明
終了日必須期間の終わりの日付
開始日必須期間の始まりの日付

引数の順番に注意してください。終了日が先、開始日が後 です。DATEDIF関数は「開始日, 終了日」の順番なので、混同しないようにしましょう。

引数の覚え方

終了日 − 開始日」の引き算をイメージすると覚えやすいですよ。引かれる数(終了日)が先にくる、と考えてみてください。

DAYS関数の基本的な使い方

2つの日付の日数差を求める

A1に「2026/1/1」、B1に「2026/3/31」と入っている場合を見てみましょう。

=DAYS(B1, A1)

結果: 89

B1(終了日)からA1(開始日)を引いた日数が返ります。結果は整数なので、そのまま計算に使えます。

終了日が開始日より前の場合

DAYS関数は、終了日が開始日より前でもエラーになりません。

=DAYS("2026/1/1", "2026/3/31")

結果: -89

マイナスの値が返ります。「期限切れかどうか」の判定に使えるので、これは便利な仕様です。

文字列の日付を指定する

DAYS関数はセル参照だけでなく、文字列で直接日付を指定することもできます。

=DAYS("2026/12/31", "2026/1/1")

結果: 364

文字列の日付は内部で自動的に日付データに変換されます。ただし、セル参照のほうが入力ミスを防げるのでおすすめです。

開始日を含めた日数を求める(+1問題)

DAYS関数は「終了日 − 開始日」の差を返します。つまり、開始日そのものは日数に含まれません

たとえば、1月1日から1月3日までの「滞在日数」を求めたい場合です。

=DAYS("2026/1/3", "2026/1/1")

結果: 2

1月1日・2日・3日の3日間を数えたいなら、結果に +1 する必要があります。

=DAYS("2026/1/3", "2026/1/1") + 1

結果: 3

「当日を含むかどうか」は業務によって変わります。イベントの開催日数や旅行の宿泊数など、当日を含めるケースでは +1 を忘れないようにしてください。

実務での活用例

納期までの残り日数を表示する

TODAY関数と組み合わせると、納期までの残り日数をリアルタイムで表示できます。A2に納期が入っている場合です。

=DAYS(A2, TODAY())

TODAY関数はファイルを開くたびに当日の日付を返します。納期が過ぎるとマイナスになるので、期限切れの判定にも使えますよ。

契約の残り日数を管理する

契約終了日(B列)から今日までの残り日数を表示し、30日以内なら「更新間近」と表示する例です。

=IF(DAYS(B2, TODAY()) <= 30, "更新間近", DAYS(B2, TODAY()) & "日")

残り日数が30日以下になったら「更新間近」、それ以外なら「○○日」と表示されます。

プロジェクトの経過日数を計算する

開始日(A列)から今日までの経過日数を求める場合です。

=DAYS(TODAY(), A2)

ここでは TODAY() が終了日の位置にきます。「今日 − 開始日」で経過日数を計算しているわけですね。

2つの日付列から一括で日数を計算する

開始日(A列)と終了日(B列)が並んでいるリストで、C列に日数を一括表示する場合です。

=DAYS(B2, A2)

C2にこの数式を入力し、下方向にコピーすればリスト全体の日数を一気に計算できます。

DAYS関数・引き算・DATEDIF・NETWORKDAYSの使い分け

Excelには日数を計算する方法がいくつかあります。それぞれの違いを表で整理しました。

比較項目DAYS関数引き算(B1-A1)DATEDIF関数NETWORKDAYS関数
戻り値日数(整数)日数(※表示形式に注意)年/月/日を指定可営業日数
引数の順番終了日, 開始日任意開始日, 終了日開始日, 終了日
負の値返る返る#NUM! エラー返る
文字列日付の対応自動変換エラーになる場合あり自動変換自動変換
土日・祝日の除外不可不可不可
対応バージョン2013以降すべてすべて(非公式)すべて

どれを使うべき? 判断フロー

迷ったときは、以下の基準で選んでみてください。

  1. 土日・祝日を除いた営業日数を求めたい → NETWORKDAYS関数
  2. 年数や月数の単位で差を求めたいDATEDIF関数
  3. 単純な日数差を求めたい → DAYS関数 or 引き算
  4. 文字列日付を扱う可能性がある → DAYS関数(自動変換してくれる)
  5. Excel 2010以前の環境で使う → 引き算

DAYS関数と引き算は結果自体は同じです。ただし、引き算はセルの表示形式が「日付」のままだと正しい数値が表示されないことがあります。DAYS関数なら必ず整数が返るので、表示形式のトラブルを避けたいならDAYS関数がおすすめです。

DATEDIF関数の注意点

DATEDIF関数は公式のサポートページに掲載されていない非公式関数です。動作に問題はありませんが、Excelの関数入力時に候補として表示されません。日数だけの計算ならDAYS関数を使うほうが安心です。

よくあるエラーと対処法

エラー・症状原因対処法
#VALUE!日付として認識できない文字列を渡したセル参照を使うか、「2026/1/1」のように正しい日付形式で入力する
#NUM!日付の範囲外の数値を渡した日付として有効な値かどうかを確認する
結果が日付のように表示されるセルの表示形式が「日付」になっているセルの表示形式を「標準」または「数値」に変更する
期待と1日ズレる開始日を含めて数えている前提だった当日を含める場合は結果に +1 する
大きな数値が表示される引数に日付ではなく数値が入っている引数のセルが正しい日付データかどうかを確認する

表示形式のトラブルを防ぐコツ

DAYS関数の結果が「1900/3/30」のような日付で表示されたら、表示形式が原因です。セルを選択して Ctrl + 1 → 「標準」を選べば正しい数値が表示されますよ。

まとめ

DAYS関数は、2つの日付の日数差をシンプルに求められる関数です。

  • =DAYS(終了日, 開始日) で日数を返す。引数は終了日が先
  • 終了日が開始日より前なら マイナスの値 が返る(エラーにならない)
  • TODAY関数と組み合わせれば 残り日数のリアルタイム表示 ができる
  • 開始日を含めたい場合は結果に +1 する
  • 引き算と結果は同じだが、表示形式トラブルがないのがDAYS関数の強み

日付の引き算で表示が崩れて困った経験がある方は、DAYS関数に切り替えてみてください。数式の意味もわかりやすくなりますよ。

DATE関数の使い方DATEDIF関数の使い方もあわせてチェックすると、Excelの日付操作がもっとスムーズになります。日付計算完全攻略記事もぜひ参考にしてみてください。

関連記事

関数一覧

どちらの関数一覧からでも各関数の解説記事へアクセスできます。

エラー値についてのまとめ記事

タイトルとURLをコピーしました