年・月・日がそれぞれ別のセルに分かれているデータを、1つの日付として扱いたいことがあります。結論から言うと、DATE関数は=DATE(年,月,日)の3つの数値から、Excelが日付として認識できるシリアル値を組み立ててくれる関数です。この記事では基本の使い方と、月の値が12を超えたときの意外な挙動を解説します。
目次
DATE関数の基本構文
次のような年・月・日が分かれた表(A1:D4)を例に見ていきます。
| A(年) | B(月) | C(日) | D(日付) | |
|---|---|---|---|---|
| 2 | 2026 | 4 | 1 | |
| 3 | 2026 | 12 | 31 | |
| 4 | 2026 | 13 | 1 |
A列=年、B列=月、C列=日、D列=DATEで組み立てる日付、という対応を踏まえてD2に次の数式を入れます。
=DATE(A2,B2,C2)
A2(2026)・B2(4)・C2(1)から「2026/4/1」という日付が返ります。D3も同様に「2026/12/31」が返り、実際に検算しても一致します。
DATE関数で月が12を超えたときの繰り上がりと「〇ヶ月後」の求め方
表の4行目(A4:C4)は、B列(月)に13を指定した例です。DATE関数は月の値が12を超えると、超えた分だけ年をまたいで繰り上げて解釈します。
=DATE(2026,13,1)
この数式は「2027/1/1」を返します。エラーにはならず、13ヶ月目=翌年の1ヶ月目として自動的に計算されるためです。この性質を逆手に取ると、「〇ヶ月後の日付」を求める計算に応用できます(例:=DATE(A2,B2+3,C2)でA2・B2・C2の3ヶ月後の日付を求める。2026/4/1の3ヶ月後なので2026/7/1)。
DATE関数のよくある注意点
- 月末日を求めたいときはEOMONTHの方が簡単: 「その月の最終日」を求めたい場合、DATE関数で計算するより締め日を設定 EOMONTH関数の機能と使い方|エクセルで紹介しているEOMONTH関数を使うほうが簡潔に書けます。
- 月末日に「+1ヶ月」するとずれることがある:
=DATE(2026,1+1,31)は存在しない「2026年2月31日」を指定したことになり、日の超過分も繰り上がって「2026/3/3」を返します。月末を基準に〇ヶ月後を求めたいときもEOMONTH関数が安全です。 - 「4月」「1日」のような単位付きの文字が入っていると#VALUE!エラーになる: 年・月・日のセルに数字以外の文字が混ざっていると、DATE関数は数値として解釈できず#VALUE!エラーを返します(対処法は#VALUE!エラーの原因と直し方参照)。年・月・日のセルには「4」のように数字だけを入力しておきましょう。
- 日をまたぐ集計にはSUMIFやCOUNTIFSとの組み合わせが便利: DATE関数で作った日付は、期間を指定した集計の条件としてそのまま使えます(例: SUMIFで日付範囲を指定して集計する方法)。条件を複数付けて集計したい場合は、サイトの人気記事エクセルのsumifs関数でOR条件の集計をする方法もあわせて参考にしてください。
DATE関数が登場する記事
- SUMIFで日付範囲を指定して集計する方法
- AVERAGEIFSで複数条件の平均を計算する方法
- COUNTIFSで複数条件を満たすセルの個数を数える方法
- 締め日を設定 EOMONTH関数の機能と使い方|エクセル
DATE関数の使い方まとめ
DATE関数は=DATE(年,月,日)の3引数で日付を組み立てる関数です。月に13以上の値を入れるとエラーにならず年をまたいで繰り上がる性質を利用すれば、「nヶ月後の日付」も簡単に求められます。月末日だけを求めたい場合はEOMONTH関数の方が簡潔です。





