- 作成日 : 2025年8月5日
エクセルのDATE関数とは?日付の自動作成と曜日を判定する方法
ExcelのDATE関数(読み方:デイト関数)は、「年・月・日」の数値を組み合わせて正確な日付を作成するための関数です。日付の計算や特定の日付の生成だけでなく、他の関数との組み合わせで複雑な日付処理も可能になります。
シリアル値による日付管理が基本のExcelでは、手入力や文字列変換によるミスを防ぎ、正しい日付データとして認識させるのに不可欠な関数です。
業務では、請求書や契約書の期日設定、勤怠管理、スケジュール作成、日数計算など、さまざまなシーンで活用されます。
この記事では、DATE関数の基本構文や使い方から、実務で役立つ具体的な活用例、よくあるエラーの対処法まで、初心者にもわかりやすく解説します。
目次
日付を数値として扱うExcelの仕組み
DATE関数の使い方に入る前に、Excelが日付をどのように扱っているかを知っておくことが重要です。実は、Excelは日付を入力すると、「シリアル値」と呼ばれる数値に変換して認識しています。
Excelでは、2つの日付システムがサポートされていることを押さえておきましょう。Windows版のExcelでサポートしているのは、1900年1月1日を「シリアル値1」として、そこから経過した日数を数える「1900日付システム」です。Mac版ExcelやWindows版Excelの一部の古いバージョンでは、1904年1月1日を「0」とする「1904日付システム」を使用しています。
たとえば、1900年1月2日は「2」、2008年1月1日は「39448」といった具合です。このシリアル値として日付を扱うことで、Excelは日付の足し算や引き算、期間の計算などを正確に行えます。私たちが普段見慣れている「YYYY/MM/DD」形式は、あくまでもシリアル値を「日付形式」に表示変換しているに過ぎません。この仕組みを理解しておくと、DATE関数だけでなく、他の日付関連の関数を利用したり、日付の計算を行ったりする際に役立ちます。
DATE関数の基本的な使い方
DATE関数は、指定した「年」「月」「日」の3つの要素から、日付のシリアル値を生成する関数です。
基本の構文
書式:
=DATE(年, 月, 日)
引数:
- 年: 西暦の年を数値で指定します。たとえば2024年であれば「2024」と入力します。
- 月: 月を数値で指定します。1月から12月までを「1」から「12」で入力します。
- 日: 日を数値で指定します。1日から31日までを「1」から「31」で入力します。
数値を直接入力するほか、セル番号や数式を指定することも可能です。
使用例:
たとえば、2024年5月15日の日付を作成したい場合、以下のようになります。
=DATE(2024, 5, 15)
この数式を入力すると、セルには「2024/5/15」と表示されます(セルの書式設定によって表示形式は異なります)。内部的には、この日付に対応するシリアル値が格納されています。
不正な日付を入力した場合の挙動
DATE関数は、指定された年、月、日に基づいて正確な日付を生成しますが、ときには予期せぬ挙動を示すこともあります。
- 月の値が12を超える場合: たとえば、=DATE(2024, 13, 1)と入力すると、2024年の13ヶ月目、つまり翌年2025年の1月1日として認識されます。
- 日の値がその月の最終日を超える場合: たとえば、30日までしかない4月に=DATE(2024, 4, 31)と入力すると、4月31日は存在しないため、翌月5月の1日として認識されます。
- 月の値が1未満の場合: たとえば、=DATE(2024, 0, 1)と入力すると、前年2023年の12月1日として認識されます。
- 日の値が1未満の場合: たとえば、=DATE(2024, 1, 0)と入力すると、前月2023年12月31日として認識されます。
このように、DATE関数は指定された数値が日付として存在しない場合でも、自動的に調整して日付を生成します。便利な機能ですが、意図しない日付が生成される可能性もあるため、入力する数値には注意が必要です。
DATE関数の具体的な利用シーン
DATE関数は単体で使うだけでなく、他の関数と組み合わせることで、さまざまなシーンでその真価を発揮します。ここでは、実際の業務で役立つ具体的な利用シーンをご紹介します。
年、月、日が別々のセルにあるデータを結合して日付を作成する
顧客からのデータや外部システムからエクスポートされたデータなど、年、月、日がそれぞれ別のセルに分かれて入力されている場合があります。この場合、DATE関数を使えば、これらの要素を簡単に結合して正しい日付形式に変換できます。
例:
A | B | C | D | |
---|---|---|---|---|
1 | 年 | 月 | 日 | 結合日付 |
2 | 2024 | 5 | 15 |
D2セルに以下の数式を入力します。
=DATE(A2, B2, C2)
これにより、D2セルには「2024/5/15」という日付が生成されます。
特定の月の最終日を求める
請求書の締め日や在庫棚卸の基準日など、月の最終日を正確に把握する必要がある場面は多々あります。DATE関数と他の関数を組み合わせることで、簡単に最終日を求められます。
例:
2024年5月の最終日を求める場合、以下の数式を使用します。
=DATE(2024, 5+1, 0)
この数式では、「5+1」で翌月(6月)を指定し、「0」日でその前日、つまり5月の最終日を求めています。結果として、「2024/5/31」が返されます。
より汎用的な方法:EOMONTH関数との組み合わせ
特定の月の最終日を求めるには、EOMONTH関数がより直接的でわかりやすい場合があります。EOMONTH関数は、指定した日付から指定した月数だけ前または後の月の最終日を返します。
書式:
=EOMONTH(開始日, 月数)
例:
2024年5月の最終日を求める場合、開始日として2024年5月1日を使用し、月数に「0」(同じ月の最終日)を指定します。
=EOMONTH(DATE(2024, 5, 1), 0)
この数式でも「2024/5/31」が返されます。DATE関数とEOMONTH関数を使い分けることで、より効率的に目的の日付を生成できます。
〇年〇ヶ月〇日後の日付を計算する
プロジェクトの完了予定日や契約期間の満了日など、ある日付から特定の期間が経過した後の日付を計算する際にもDATE関数は役立ちます。
例:
今日から1年3ヶ月20日後の日付を求めたいとします。
A1セルに本日の日付「2024/5/15」が入力されていると仮定します。
- YEAR(A1): A1セルの年から年数を取得します。
- MONTH(A1): A1セルの月から月数を取得します。
- DAY(A1): A1セルの日から日数を取得します。
これらにそれぞれ加算することで、指定した期間後の日付を計算できます。ただし月と日に指定できる整数は制限があるため、現実的には◯周年記念日を求める際に使うのが妥当でしょう。
DATE関数の応用テクニック
DATE関数は単体でも便利ですが、他の関数や条件付き書式などと組み合わせることで、より高度な日付管理が可能になります。
WEEKDAY関数と組み合わせて特定曜日の日付を求める
特定の曜日の日付を求めたい場合、DATE関数と指定した日付に応じて曜日を返すWEEKDAY関数を組み合わせることで実現できます。たとえば、毎月第1月曜日の日付を把握したいといったケースです。
書式:
- 日付: 曜日を調べたい日付をDATE関数を使って指定します。
- 基準: 週の始まりをどのように定義するかを指定します。
- 1(または省略時):日曜日 (1) から土曜日 (7)
- 2:月曜日 (1) から日曜日 (7)
- 3:月曜日 (0) から日曜日 (6)
例:
2024年5月の第1月曜日を求めたい場合です。
まず、2024年5月1日の曜日を調べます。
=WEEKDAY(DATE(2024, 5, 1), 2)
この数式は、2024年5月1日(水曜日)に対して「3」を返します(種類2の場合、月曜が1、水曜が3)。
もし5月1日が月曜日(結果が1)であれば、それが第1月曜日です。
そうでない場合、5月1日(水曜日、結果3)から次の月曜日(結果1)までの日数を計算します。この差は (1 – 3 + 7) = 5 日です(結果が負になる場合があるので7を加える)。
したがって、5月1日に5日を足すと、5月6日(2024年5月の第1月曜日)となります。
より簡潔に、特定の月(今回は5月)の第1月曜日を求める方法は、少し複雑になりますが、以下のようなアプローチが考えられます。
=DATE(2024, 5, 1) + (8 – WEEKDAY(DATE(2024, 5, 1), 2))
この式は、指定した月の最初の月曜日を求める方法の1つです。
たとえば、2024年5月1日は水曜日(WEEKDAY関数の結果が3)なので、8 – 3 = 5 となります。
5月1日に5日を足して5月6日となり、これが2024年5月の第1月曜日です。
条件付き書式と組み合わせ、特定の日付範囲のセルを強調表示する
まずDATE関数でA列にカレンダーを作成します。「年」をセルD2、「月」をセルE2に入力してください。A2に数式「=DATE(D2,E2,1)」を、A3には数式「=A2+1」を入力し、右下のフィルハンドルを下方向にドラッグすればカレンダーの出来上がりです。
次に前述のWEEKDAY関数を使えば、条件付き書式と組み合わせることで、特定のセルにセルに色をつけられます。
例:
日付が入力されたA列のセルのうち、定休日である火曜日に色をつけたい場合です。
- まず色をつけたい日付の範囲(ここではセルA2以下)を選択します。
- 「ホーム」タブの「条件付き書式」をクリックし、「新しいルール」を選択します。
- 「数式を使用して、書式設定するセルを決定」を選択します。
- 「次の数式を満たす場合に値を書式設定」に次の数式を入力します。
=WEEKDAY($A2)=3
上記の数式は、「セルA2のWEEKDAY関数の結果が3なら」の意味です。
基準を省略した場合、日曜日が1なので、火曜日は3となります。
「$A2」は、列のみを絶対参照にしたものです(複合参照)。
数式の先頭には等号を入力してください。
- 定休日の条件に該当する日付に色をつけるため、「書式」をクリックします。
- 「セルの書式設定」の「塗りつぶし」タブから黄色を選択します。
なお日付セルの隣にあるセルB2に、下記の数式を入力すれば、テキストによる「定休日」表示も可能です。
=IF(WEEKDAY(A2)=3,”定休日”,””)
日付の表示形式について
DATE関数によって生成された日付は、内部的にはシリアル値です。セルの表示形式を変更することで、さまざまな形式で日付を表示できます。これは、データの視覚的な表現を向上させるために非常に重要です。
- 日付が入力されているセルまたは範囲を選択します。
- 右クリックして「セルの書式設定」を選択するか、「ホーム」タブの「数値」グループの右下にある小さな矢印(ダイアログボックス起動ツール)をクリックします。
- 「数値」タブをクリックします。
- 「カテゴリ」リストから「日付」を選択します。
- 「種類」リストから、希望する日付の表示形式を選択します。
- 2024/5/15
- 2024年5月15日
- 15-May-2024
- 水曜日, 2024年5月15日
また、「ユーザー定義」を選択すると、より細かく表示形式をカスタマイズできます。
- yyyy: 年を4桁で表示 (例: 2024)
- yy: 年を2桁で表示 (例: 24)
- m: 月を1桁または2桁で表示 (例: 5, 12)
- mm: 月を2桁で表示 (例: 05, 12)
- mmm: 月を英語の略語で表示 (例: May)
- mmmm: 月を英語のフルスペルで表示 (例: May)
- d: 日を1桁または2桁で表示 (例: 1, 15)
- dd: 日を2桁で表示 (例: 01, 15)
- ddd: 曜日を英語の略語で表示 (例: Wed)
- dddd: 曜日を英語のフルスペルで表示 (例: Wednesday)
- aaa: 曜日を日本語の略語で表示 (例: 水)
- aaaa: 曜日を日本語のフルスペルで表示 (例: 水曜日)
これらの表示形式を理解することで、DATE関数で生成した日付データを、目的に合わせて柔軟に表現できるようになります。
日付に関するトラブルシューティング
Excelで日付を扱う際によくあるトラブルとその解決策を知っておくと、スムーズに作業を進められます。
日付が数値(シリアル値)で表示されてしまう
これは、セルの表示形式(数値の書式)が「標準」または「テキスト(文字列)」になっている場合に発生します。Excelが文字列として認識している場合は、セルの数字が左揃えで表示されるので留意が必要です。前述の「日付の表示形式について」の手順に従って、セルの表示形式を「日付」に変更してください。
日付として認識されない文字列
Excelは、システム設定や地域設定に基づき、特定の形式の文字列を自動的に日付として認識します。例えば、「2024/5/15」や「2024-5-15」、日本語環境であれば「2024年5月15日」なども自動的に日付として認識されることが多いです。日付として認識されていれば、セル内で右揃えになります。しかし、Excelが日付として認識しないような、不適切な形式で入力されている場合は、単なる文字列として扱われてしまうのです。
このような場合、DATE関数を使って文字列の年、月、日を抽出し、正しい日付形式に変換できます。
例:
A1セルに「2024年05月15日」という文字列が入力されている場合です。
この数式は、月と日の位置が固定されている場合に機能します。
=DATE(LEFT(A1,4), MID(A1,6,2), MID(A1,9,2))
上記の数式では、DATE関数はセルA1を調べ、下記の情報を返します。
- LEFT(A1,4): 文字列の左から4文字(年)を取得します。
- MID(A1,6,2): 文字列の6文字目から2文字(月)を取得します。
- MID(A1,9,2): 文字列の9文字目から2文字(日)を取得します。
この例では、月と日が2桁で固定されていますが(例:「05月01日」)、変換後の日付を表示させるセル(B1など)が日付設定されていれば、「05」の「0」は表示されません。もし、「2024年5月1日」のように月や日が1桁の文字列も考慮するなら、より柔軟な数式(例: FIND関数などを組み合わせる)が必要です。
日付の計算結果が#VALUE!エラーになる
#VALUE!エラーは、数式で使用されている値が期待されるデータ型と異なる場合に発生します。日付の計算でこのエラーが発生する場合、数値として認識されていない文字列や、DATE関数に無効な引数が渡されている可能性があります。
- 引数が数値であることを確認する(セル参照であれば、そのセルに数値が入っているか)。
- 指定の日数で日付を減算数式で計算している場合、適切に負符号が使われているか確認する(負符号を区切り記号として使用していないか)。
- 日付文字列を直接計算に使用している場合は、DATE関数でシリアル値に変換してから計算する。
これらの点を確認し、適切に修正することでエラーを解消できます。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
エクセルで〇の数を数える関数とは?数えられない場合はどうする?
エクセルを使ってデータを分析する際、「〇」といった特定の記号や値を数えたい場合がありますが、そのためには適切な関数を利用することが重要です。この記事では、エクセルで〇の数を数えるための代表的な関数であるCOUNTIF関数やCOUNTIFS関…
詳しくみるエクセルで案件管理は可能?活用のポイントや注意点を解説
案件ごとの進捗や情報を整理する「案件管理」は、営業や業務管理の効率化に欠かせない作業です。専用ツールを使わずに、エクセルで手軽に管理を始めたいと考える方も多いのではないでしょうか。 本記事では、エクセルの初心者でも取り組みやすい案件管理の基…
詳しくみるIFS関数とは?使い方やIF関数との使い分けをわかりやすく解説
IFS関数とは、ExcelやGoogleスプレッドシートで利用できる関数の一つで、複数の条件を同時にチェックし、それに応じた結果を返すことができる機能です。この機能を使用することで、IF関数を連続して書く手間を省き、よりシンプルに条件分岐を…
詳しくみるEXACT関数の使い方や複数条件指定の方法を解説
EXACT関数は、ExcelやGoogleスプレッドシートにおいて、文字列が完全に一致するかどうかを判断するための便利な機能です。文字の大文字と小文字まで厳密に比較することができるため、データの整合性を確保する上で重要な役割を果たします。本…
詳しくみるエクセルで特定のデータの個数を数える関数まとめ
エクセルでは、特定のデータの個数を簡単に数えるための便利な関数がいくつか用意されています。これらの関数を使いこなすことで、データ分析の精度を高め、迅速な意思決定をサポートします。この記事では、代表的な数え上げ関数である「COUNT」「COU…
詳しくみるCORREL関数の使い方とは?エクセルで相関係数を求めよう
データ分析において、異なる変数間の関係性を把握することは非常に重要です。エクセルには、そうした相関関係を簡単に求めるための「CORREL関数」が用意されています。この関数を使うことで、2つのデータセット間の相関係数を迅速に計算することができ…
詳しくみる