Excel 2つの日付の間の日数を取得(DAYS関数)

2020年5月16日

DAYS関数は2つの日付の日数の差(期間)を取得する関数です。

単純に引き算し数値型で表示しても同じ結果になりますが、

DAYS関数で記述して日付であることを明示するほうが可読性が良くなります。

仕様

=DAYS(終了日,開始日)
引数省略時の値説明
終了日省略不可日付を指定(形式が合っていれば文字列でも可)
開始日省略不可日付を指定(形式が合っていれば文字列でも可)
各引数の詳細

実行例

DAYS関数の引数と結果の一覧です。

開始日と終了日が同じなら0、終了日の方が過去であれば負数、

日付として認識できない場合は#VALUEエラーとなります。

DAYS関数の引数と結果の一覧

このように文字列で直指定することも可能です。

文字列で引数を直指定

“(ダブルコーテーション)なしで指定した場合、

日付でなく、割り算の結果として扱われてしまうため

意図した結果にならない点に注意が必要です。

"(ダブルコーテーション)なしで指定した場合、日付でなく割り算として処理されてしまう

TODAY関数と組み合わせてリマインダ

当日の日付を取得するTODAY関数と併用すれば

自動的に残り日数を表示するリマインダを作ることが可能です。

TODAY関数と組み合わせてリマインダ

条件付き書式も組み合わせるとより強力なリマインダになります。

スピルを利用する方法とメリット

Office365やExcel2019以降ではスピルという形式で記述可能です。

これは複数セルに数式をコピーする場合に便利な機能です。

スピルの利用には引数を範囲で指定します。

スピルでDAYS関数を記述する例
スピルでDAYS関数を記述する例

数式を入力するのは最初の一つのセルですが、

引数で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

D3に指定したDAYS関数がD7まで自動拡大
D3に指定したDAYS関数がD7まで自動拡大

スピルを利用することで今回の例では、

D3セルに入力するだけでよいため(D4以降にコピーペーストが不要)

以下のメリットがあります。

  • 入力の手間が少ない(数式のセルが多いほど効果が大きい)
  • 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
  • 絶対参照が不要
  • 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。

関連記事

日数計算を行う同類の関数

指定期間の日数(営業日・稼働日)を取得(NETWORKDAYS関数)

1年を360日(12か月×30日)として2つの日付の期間(日数)を取得する(DAYS360関数)

関数の仕様と使い方の記事一覧