年・月・日を指定し、その日付を取り出す

上のサンプルの「逆」のようなものですが、合体文字列の生成ではなくて「日付」のデータ型を生成します。
まず、データ上の「日付」がどういうものか理解して下さい。   セル上の「日付」は書式に左右されて、和暦表示だったり、西暦表示だったり、月日だけだったりしますが、「日付」として認識されているなら数式バーには日本語版Excelなら「2000/1/1」という形式で表示されるはずです。 しかし、「日付」というデータ型の実体はこのような視覚的に「年」「月」「日」が認識できるようなものではなく、「シリアル値」というものなのです。





まず「日付」というデータ型を理解して下さい。

セルに和暦で日付を入力

まず、新規ブックを開いて、A1セルに和暦で日付を入力してみます。 セル上では、おそらく入力したままで「平成28年7月18日」などと表示されていると思います。
次に、そのA1セルをもう一度選択してみます。

そのセルを再度、選択

「数式バー」を見ると、入力した和暦の日付ではなく、西暦の日付が表示されているはずです。 これは、セル上の値が「日付」として認識されていて、書式で和暦として表示されていることを表わしています。
では、その「日付」とはどのようなデータなのでしょう。

そのセルの「セルの書式設定」を見る

A1セルを選択した状態で「セルの書式設定」を選択してみます。 バージョンに寄りますが、Excel2013だと、このようになっていました。
これだけでは実体が分からないので、これを「数値」にしてみましょう。

そのセルの書式を「数値」に変更

ここで、既に「サンプル」の表示が5桁の数値に変わったので分かると思いますが、内部の値は「年」「月」「日」を表意するような文字情報ではなく、単なる数値なのです。
このような表を見れば理解ができると思います。

日付に対する「数値」の増分は?

A列に連続した日付を入力しておいて、B列にはそのA列を単純に参照する計算式を入れておきます。 そしてB列の書式を「数値」にしておくと、このようになりました。
内部で扱われている「日付」は、1900年1月1日を起算とする「通算日」のような値なのです。1日を「1」の増分とする値ですが、これで時刻も表記するので「整数」ではなく「実数」です。 1日を「1」の増分とするわけですから、1時間は「24分の1」の増分、1分は「1440分の1」の増分となります。
この前後のページで紹介する関数を使う上では、これらのことを理解していなくても済む場合がほとんどですが、「翌日の日付は1を加えれば良い」とか「月末日は翌月1日から1を引けば良い」などの応用ができるかなどで大きく違いが出ることがあります。

「年」「月」「日」をそれぞれ数値で指定して、これを日付として生成するのがDATE関数です。

DATE関数サンプル
(画像をクリックすると、このサンプルがダウンロードできます)
DATE関数は、カッコ内に「年」「月」「日」を指定することで、該当する日付を生成します。



関数概略説明
 DATE関数  3つの独立した値を受け取り、それらを組み合わせて日付を作成します。
 引数は以下の通りです。
 ① 年
 ② 月
 ③ 日



※7行目は年月日をYYYYMMDD形式の文字列として生成しています。

DATE関数の特質すべき点は、以下の例を見て下さい。

DATE関数サンプル②

Excelを呼び出すと、上のものと全く同じですが、年月日の指定が違います。「2025年1月0日」を要求しているわけで、「2024年12月31日」が返ってきます。これは例えば月末の日付を求めるような処理を行なう場合に「大の月」「小の月」「うるう年」などを計算式の上で意識する必要がないことを意味しています。単に翌月で「0日」と算出すれば良いわけです。