Excel 年、月、日を指定して日付(シリアル値)を取得(DATE関数)

2021年11月6日

DATE関数は引数に年月日を指定し、対応する日付(シリアル値)を取得する関数です。

単純に日付を入力したい場合は2019/5/20のように日付形式でセル入力をする方が適切で、

このDATE関数は何らかの数式で年、月、日を計算する場合に組み込むための関数です。

この記事ではそのDATE関数の仕様と使い方を紹介します。

仕様

=DATE(年,月,日)
引数省略時の値説明
省略不可1900(環境によっては1904)~9999までの数値を指定
省略不可1~12までの数値指定
省略不可1~31までの数値指定
各引数の詳細

実行例

引数と実行結果です。

DATE関数の引数と実行結果

内部で計算している都合上、0以下や32以上など

あり得ない月日を入れても計算されてしまいます。

年も1899年を入れると3799年という結果となります。

1万年を超えると#NUM!エラー

アルファベットなど数値でないものが混ざると#VALUE!エラーとなります。

閏日の扱い

2019/2/29という引数になる場合、(閏年でない2/29)

結果は2019/3/1となります。

このようなケースを2/28として扱いたい場合は数式をこのようします。

=IF(AND(MONTH(DATE(年,月,日))=3,月=2,年=29),DATE(年,月,日)-DAY(DATE(年,月,日)),DATE(年,月,日))

G列F列が実行結果です。

うるう年対応を入れた数式の結果
うるう年対応を入れた数式の結果

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

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

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

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

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

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

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

E4に指定したDATE関数がE7まで自動拡大
E4に指定したDATE関数がE7まで自動拡大

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

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

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

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

Excelを効果的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り1,250円またはKindle Unlimited (読み放題) で提供中です。

Word-A4サイズ:1,400ページの情報量で

(実際のページ数はデバイスで変わります)

基本的な使い方、関数の解説(140種類)、

頻出テクニックと実用例(109種類)、

XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事