Excel 年、月、日を指定して日付(シリアル値)を取得(DATE関数)
DATE関数は引数に年月日を指定し、対応する日付(シリアル値)を取得する関数です。
単純に日付を入力したい場合は2019/5/20のように日付形式でセル入力をする方が適切で、
このDATE関数は何らかの数式で年、月、日を計算する場合に組み込むための関数です。
この記事ではそのDATE関数の仕様と使い方を紹介します。
目次
仕様
=DATE(年,月,日)
引数 | 省略時の値 | 説明 |
---|---|---|
年 | 省略不可 | 1900(環境によっては1904)~9999までの数値を指定 |
月 | 省略不可 | 1~12までの数値指定 |
日 | 省略不可 | 1~31までの数値指定 |
実行例
引数と実行結果です。

内部で計算している都合上、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以降ではスピルという形式で記述可能です。
これは複数セルに数式をコピーする場合に便利な機能です。
スピルの利用には引数を複数セルの範囲で指定します。

数式を入力するのは最初の一つのセルですが、
引数1で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

スピルを利用することで今回の例では、
E4セルに入力するだけでよいため(E7以降にコピーペーストが不要)
以下のメリットがあります。
- 入力の手間が少ない(数式のセルが多いほど効果が大きい)
- 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
- 絶対参照が不要
- 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。
ディスカッション
コメント一覧
まだ、コメントがありません