「年・月・日がバラバラのセルに入っているけど、これを1つの日付にまとめたい」と思ったことはありませんか。手入力で日付を打ち直すのは手間ですし、ミスのもとにもなりますよね。
ExcelのDATE関数を使えば、年・月・日の数値を指定するだけで正しい日付を作成できます。この記事では基本の書き方から、月末日の算出や○ヶ月後の計算といった実務パターンまでまとめて紹介します。
この記事は次のような人におすすめ
- 年・月・日が別セルに分かれたデータを日付にまとめたい
- 月末日や○ヶ月後の日付を数式で自動計算したい
- DATE関数とTODAY関数・EOMONTH関数の違いを整理したい
DATE関数とは?
DATE関数(読み方: デイト)は、年・月・日の3つの数値を指定して日付のシリアル値を返す関数です。英語の「date(日付)」がそのまま関数名になっています。
Excelでは日付を内部的に「シリアル値」という数値で管理しています。1900年1月1日を「1」として、1日ごとに1ずつ増える仕組みです。たとえば2025年4月1日のシリアル値は「45748」です。
DATE関数が返すのもこのシリアル値ですが、セルの表示形式が自動的に「日付」に切り替わるため、見た目は 2025/4/1 のように表示されます。
DATE関数の書き方(構文と引数)
基本構文
=DATE(年, 月, 日)
引数は3つとも必須です。省略するとエラーになります。
引数の説明
| 引数 | 必須/省略可 | 内容 |
|---|---|---|
| 年 | 必須 | 西暦の年を数値で指定(1900〜9999)。0〜1899を指定すると自動的に1900が加算される |
| 月 | 必須 | 月を数値で指定(通常1〜12)。13以上や0・負の値も指定可能(後述) |
| 日 | 必須 | 日を数値で指定(通常1〜31)。32以上や0・負の値も指定可能(後述) |
NOTE
年に0〜1899を指定すると、自動で1900が加算されます。たとえば
=DATE(24,4,1)は2024/4/1ではなく1924/4/1になります。西暦は4桁で指定するのが安全です。
DATE関数の基本的な使い方
数値を直接指定して日付を作る
もっともシンプルな使い方です。年・月・日を直接数値で指定します。
=DATE(2025, 4, 1)
結果: 2025/4/1
シリアル値「45748」が返り、セルには日付形式で表示されます。
別セルの値から日付を組み立てる
A1に「2025」、B1に「4」、C1に「1」が入っている場合、次のように書きます。
=DATE(A1, B1, C1)
結果: 2025/4/1
年・月・日がバラバラの列に入っているデータを1つの日付にまとめたいときに便利です。CSVから取り込んだデータの整形でよく使うパターンですよ。
シリアル値を確認する
DATE関数が返すのはシリアル値です。セルの表示形式を「標準」に変更すると、数値を確認できます。
=DATE(2025, 4, 1)
表示形式「日付」: 2025/4/1
表示形式「標準」: 45748
シリアル値が分かると、日付同士の引き算で日数差を計算できます。
DATE関数の実務活用パターン
年月日を別セルから組み立てる
社員マスターなどで、生年月日が「年」「月」「日」の3列に分かれているケースは多いですよね。DATE関数で1列にまとめましょう。
A列に年、B列に月、C列に日が入っているとします。
=DATE(A2, B2, C2)
結果をオートフィルで下にコピーすれば、全行まとめて日付に変換できます。
月末日を計算する(翌月の0日)
DATE関数は、日に「0」を指定すると前月の末日を返します。この特性を使うと月末日を簡単に計算できます。
=DATE(2025, 5, 0)
結果: 2025/4/30(5月の前月=4月の末日)
つまり「当月の月末日」を求めるなら、月に1を足して日を0にします。
=DATE(A2, B2+1, 0)
A2に「2025」、B2に「4」が入っている場合、結果は 2025/4/30 です。EOMONTH関数でも月末日を取得できますが、DATE関数なら年・月の数値だけで計算できるのがポイントです。
○ヶ月後の日付を求める
月の引数に加減算を入れると、○ヶ月前後の日付を計算できます。
=DATE(2025, 4+3, 1)
結果: 2025/7/1(3ヶ月後)
=DATE(2025, 4-2, 1)
結果: 2025/2/1(2ヶ月前)
月に13以上や0以下の値を指定しても、DATE関数が自動的に年をまたいで計算してくれます。たとえば =DATE(2025, 15, 1) は 2026/3/1(2025年の15ヶ月目)になります。
TIP
○ヶ月後の同日を正確に求めたい場合はEDATE関数がおすすめです。DATE関数は「年・月・日を個別に制御したい」ときに使い、EDATE関数は「基準日からの月数計算」に使うと役割がはっきりします。
期日・締切日を自動計算する
請求書の支払期日(翌月末など)を自動で計算する例です。A2に請求日が入っているとします。
=DATE(YEAR(A2), MONTH(A2)+2, 0)
結果: A2が 2025/4/15 なら 2025/5/31(翌月末)
YEAR関数とMONTH関数で年・月を取り出し、DATE関数で再構成するパターンです。期日管理や締切計算の定番テクニックですよ。
DATE関数とTEXT関数の連携
DATE関数で作った日付を、特定の形式の文字列として表示したい場合はTEXT関数と組み合わせます。
和暦で表示する
=TEXT(DATE(2025,4,1), "ggge年m月d日")
結果: 令和7年4月1日
曜日付きで表示する
=TEXT(DATE(2025,4,1), "yyyy/mm/dd(aaa)")
結果: 2025/04/01(火)
DATE関数の結果はシリアル値なので、TEXT関数の書式コードをそのまま適用できます。「yyyy年m月」のような年月だけの表示や、「m/d」のような短い形式にも対応できます。
よくあるエラーと対処法
DATE関数はエラーが出にくい関数ですが、意図しない結果になるケースがあります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| 日付ではなく5桁の数字が表示される | セルの表示形式が「標準」のまま | セルの表示形式を「日付」に変更する |
| 月に13以上を指定したら翌年の日付になった | DATE関数の自動繰り上げ機能 | 仕様通り。月が12を超えると自動で年に繰り上がる |
| 日に32以上を指定したら翌月の日付になった | DATE関数の自動繰り上げ機能 | 仕様通り。日が月末を超えると翌月に繰り上がる |
| 年に「24」と入れたら1924年になった | 0〜1899は自動で+1900される | 西暦は4桁(2024)で指定する |
| #VALUE! エラーが出る | 引数に数値以外(文字列など)を指定した | 数値またはセル参照を確認する。文字列の日付はDATEVALUE関数を使う |
| #NUM! エラーが出る | 年に負の値を指定した、または結果が日付範囲外 | 年は0以上を指定する。Excelの日付範囲は1900/1/1〜9999/12/31 |
NOTE
月や日の自動繰り上げは、DATE関数の便利な仕様です。たとえば
=DATE(2025,2,30)は2月30日ではなく 2025/3/2 になります。「月末を超えた分は翌月に繰り上がる」と覚えておくと、意図しない結果を防げます。
似た関数との違い・使い分け
日付を扱う関数はいくつかあります。目的に応じて使い分けましょう。
| 関数 | 目的 | 使い方の例 |
|---|---|---|
| DATE | 年・月・日の数値から日付を作成する | =DATE(2025,4,1) → 2025/4/1 |
| TODAY関数 | 今日の日付を自動取得する | =TODAY() → 今日の日付 |
| YEAR関数 | 日付から年を取り出す | =YEAR(A1) → 2025 |
| MONTH関数 | 日付から月を取り出す | =MONTH(A1) → 4 |
| DAY関数 | 日付から日を取り出す | =DAY(A1) → 1 |
| EDATE関数 | 基準日から○ヶ月後/前の同日を返す | =EDATE(A1,3) → 3ヶ月後 |
| EOMONTH関数 | 基準日から○ヶ月後/前の月末日を返す | =EOMONTH(A1,0) → 当月末日 |
| DATEDIF関数 | 2つの日付間の期間を求める | =DATEDIF(A1,B1,"M") → 月数 |
| DATEVALUE関数 | 文字列の日付をシリアル値に変換する | =DATEVALUE("2025/4/1") → シリアル値 |
使い分けのポイント
- 「年・月・日をバラバラに指定して日付を作りたい」→ DATE関数
- 「今日の日付を自動で入れたい」→ TODAY関数
- 「基準日から○ヶ月後の同じ日を知りたい」→ EDATE関数
- 「月末日を求めたい」→ EOMONTH関数(DATE関数の0日テクニックでも可)
- 「2つの日付の差を知りたい」→ DATEDIF関数
DATE関数は「年・月・日を個別にコントロールできる」のが最大の強みです。YEAR/MONTH/DAY関数と組み合わせて日付の一部だけを変更する使い方も覚えておくと便利ですよ。
まとめ
DATE関数は、年・月・日の数値から日付を作成する関数です。
- 構文:
=DATE(年, 月, 日)── 3つの引数はすべて必須 - 戻り値: 日付のシリアル値(表示形式で日付として見える)
- 自動繰り上げ: 月が12を超えると年に、日が月末を超えると翌月に自動調整
- 実務活用: 別セルの値から日付を組み立てる、月末日の計算(翌月の0日)、○ヶ月後の算出、期日管理
- 関連関数: TODAY関数・EDATE関数・EOMONTH関数と目的に応じて使い分ける
日付の計算は実務で頻繁に使うので、DATE関数の「月に+1して日を0にすると月末日」のテクニックは覚えておいて損はないですよ。
