「10日後の日付を自動で出したい」 「プロジェクトの締め切りまであと何日あるか知りたい」 「入社してからちょうど3年後の日付はいつになるか」
ビジネスシーンでExcelを使っていると、こうした日付の計算が必要になる場面は非常に多いものです。しかし、Excelの日付計算には「シリアル値」という独特の仕組みがあり、慣れないうちは「なぜか変な数字が表示される」「どう数式を立てればいいのかわからない」と戸惑うことも少なくありません。
この記事では、Excelの日付計算の基本から、DATE関数を使った応用、そして2つの日付の差を求める方法まで、初心者の方にもわかりやすく丁寧に解説します。
Excelの日付計算を理解するための鍵「シリアル値」とは?
日付の足し引きを学ぶ前に、まず知っておきたいのが「シリアル値」という概念です。ここを理解しておくと、Excelの日付計算がグッと簡単になります。
Excelでは、日付をそのまま文字としてではなく、1900年1月1日を「1」とした連番(数値)で管理しています。これを「シリアル値」と呼びます。
例えば、1900年1月2日は「2」、1900年1月3日は「3」となります。2010年1月1日は1900年1月1日から数えて40,178日後なので、シリアル値は「40179」になります。
つまり、Excelにとって日付とは単なる「数字」なのです。数字であれば、単純な足し算や引き算ができるのは当然ですよね。この仕組みがあるからこそ、Excelでは複雑な関数を使わなくても簡単な日付計算が可能になっています。
シリアル値を確認する方法
実際に入力した日付がどのようなシリアル値になっているかは、簡単に確認できます。
- 西暦で日付を入力したセルを選択します。
- 「ホーム」タブにある表示形式(通常は「日付」になっています)を「標準」に変更します。
- すると、日付が「45123」のような数値に変わります。これがその日のシリアル値です。
単純な足し算・引き算で日数を計算する
シリアル値が「1日=1」という数値であるため、単純に数日後や数日前の日付を出したい場合は、算術演算子の「+(プラス)」や「-(マイナス)」を使うだけで完結します。
n日後の日付を出す(足し算)
例えば、セルA2に元の日付が入っているとき、その「1日後」を出したい場合は、別のセルに以下の数式を入力します。 `=A2+1`
「30日後」であれば、`=A2+30` と入力すればOKです。これで、カレンダー通りに数えて30日後の日付が自動的に算出されます。
n日前の日付を出す(引き算)
逆に「1日前」や「15日前」の日付を知りたい場合は、引き算を使います。 `=A2-1` `=A2-15`
このように、単純な日数の加減算であれば、関数を使わずに計算式だけで非常にスムーズに処理できます。
DATE関数を使って「年・月・日」を個別に操作する
単純な日数の足し引きでは対応できないのが、「〇年後」や「〇ヶ月後」といった単位での計算です。月によって日数が異なる(30日だったり31日だったり、2月は28日だったりする)ため、単純に「+30」としても正確な1ヶ月後になるとは限りません。
そこで活用するのが「DATE関数」です。
DATE関数の基本構造
DATE関数は、年・月・日の3つの数値を組み合わせて、一つの日付データを作成する関数です。 構文は以下の通りです。 `=DATE(年, 月, 日)`
DATE関数で年・月・日を足し引きする
DATE関数の真価は、引数の「年」「月」「日」の部分に計算式を入れられる点にあります。
例えば、セルA2の日付から「1年と7ヶ月と15日後」の日付を出したい場合、以下のような組み合わせ方をします。
- 年の部分:`YEAR(A2)+1`
- 月の部分:`MONTH(A2)+7`
- 日の部分:`DAY(A2)+15`
これをDATE関数にまとめると、`=DATE(YEAR(A2)+1, MONTH(A2)+7, DAY(A2)+15)` となります。
ここで注目したいのが、Excelの賢い挙動です。例えば「月」の部分で計算結果が13(12月を超えた)になったとしても、Excelはそれを自動的に認識し、年数を1つ繰り上げて調整してくれます。これにより、複雑な暦の計算を自分で行う必要がなくなり、正確な日付を導き出せます。
月単位の計算に特化した「EDATE関数」
「1ヶ月後」や「6ヶ月前」など、月単位での計算だけを行いたい場合は、DATE関数よりもさらにシンプルな「EDATE関数」が便利です。
EDATE関数は、指定した日付から数えて「〇ヶ月後(または前)」の日付を素早く返してくれる関数です。 構文:`=EDATE(開始日, 月数)`
EDATE関数の活用例
- 1ヶ月後の日付を出す場合
`=EDATE(A2, 1)`
- 5ヶ月前の日付を出す場合
`=EDATE(A2, -5)` (月数をマイナスにすることで過去の日付を算出できます)
EDATE関数の大きなメリットは、「月末の調整」をしっかり行ってくれることです。 例えば、1月31日の1ヶ月後を計算する場合、単純な計算では「2月31日」となりますが、暦の上にそんな日は存在しません。EDATE関数を使えば、自動的に2月の末日(2月28日など)を正しく返してくれます。
2つの日付の間の「日数・期間」を求める方法
今度は、「未来の日付を出す」のではなく、「2つの日付の間に何日あるか」という差分を求める方法を解説します。
最もシンプルな引き算
単に「日数」だけを知りたいのであれば、シリアル値の仕組みを利用して、単純に引き算をするのが一番早いです。 `=終了日 – 開始日` (例:`=B2-A2`)
これで、2つの日付の間に何日あるかが数値で表示されます。
DATEDIF関数で「年・月・日」を使い分ける
「日数はわかったけれど、それを〇年〇ヶ月〇日と表現したい」という場合には、「DATEDIF(デイトディフ)関数」が非常に役立ちます。
DATEDIF関数は、2つの日付の差を「年」「月」「日」の好きな単位で抽出できる関数です。 構文:`=DATEDIF(開始日, 終了日, 単位)`
ここで指定する「単位」によって、得られる結果が変わります。
- "Y":年数のみを算出(勤続年数や年齢の計算に便利)
- "M":月数のみを算出
- "D":日数のみを算出
例えば、A1に「2023/7/7」、B1に「2024/7/7」と入力されている場合、`=DATEDIF(A1, B1, "Y")` と入力すると、結果は「1」となり、ちょうど1年の差があることがわかります。
※注意点:DATEDIF関数は、Excelの関数挿入ボタンの一覧には表示されない「隠し関数」のような存在です。使用する際は、セルに直接手入力する必要があります。
DAYS関数でシンプルに日数を出す
DATEDIF関数の他に、単純に2つの日付の差(日数)だけを求める「DAYS関数」もあります。 `=DAYS(終了日, 開始日)` という形式で使い、2つの日付の間の日数を素早く算出できます。
【重要】計算結果が変な数字(シリアル値)になった時の対処法
日付の計算をしていると、よくあるトラブルが「結果を出すはずのセルに、日付ではなく『45123』のような正体不明の数字が表示される」ことです。
これは故障ではなく、前述の「シリアル値」がそのまま表示されてしまっている状態です。Excelが「このセルは数値として表示すべきだ」と判断しているため、日付形式に直してあげる必要があります。
修正手順
- 正しく表示されていないセルを選択します。
- 「ホーム」タブのツールバーにある表示形式のドロップダウン(通常は「標準」や「数値」になっている部分)をクリックします。
- リストの中から「短い日付」または「長い日付」を選択します。
これで、シリアル値が人間が見てわかる「日付形式」に変換されます。逆に、DATEDIF関数などで「日数」を求めたのに結果が「1900/1/6」のように日付になってしまった場合は、表示形式を「標準」や「数値」に戻してください。
実務で使える日付計算の組み合わせ例
最後に、これらの関数を実務でどう組み合わせるか、具体的なケースをいくつか紹介します。
ケース1:締め切り日までの残り日数をカウントする
今日から締め切り日まであと何日あるかを自動で出したい場合、「TODAY関数(今日の日付を出す関数)」を組み合わせます。 `=DATEDIF(TODAY(), B2, "D")` (B2に締め切り日が入っている場合)
これで、ファイルを開いたその日の日付に基づいた「残り日数」が常に最新状態で表示されます。
ケース2:勤続年数を自動計算する
入社日から今日までで何年経ったかを計算したい場合も同様です。 `=DATEDIF(A2, TODAY(), "Y")` (A2に入社年月日が入っている場合)
これを使えば、従業員名簿などで一人ひとりの勤続年数を手計算することなく、一瞬で算出できます。
ケース3:支払い期限の15日前を算出する
「支払日の15日前に資金を準備したい」という場合、単純な引き算が有効です。 `=B2-15` (B2に支払期日が入力されている場合)
まとめ
Excelの日付計算は、「日付は実は数字(シリアル値)である」という点さえ押さえれば、決して難しいものではありません。
- 単純な日数の足し引き $\rightarrow$ `+` や `-` で計算
- 年や月の単位で操作したい $\rightarrow$ `DATE関数`
- 月単位で正確に加減算したい $\rightarrow$ `EDATE関数`
- 2つの日付の期間(年・月・日)を出したい $\rightarrow$ `DATEDIF関数`
- 表示が数字になったら $\rightarrow$ `セルの書式設定` を変更
目的に合わせてこれらの関数を使い分けることで、スケジュール管理や期限計算などの業務効率が劇的に向上します。まずは簡単な足し算から、ぜひ試してみてください。
ピックアップ記事



