DATE関数 - 年月日で変化する日程表 [Excel関数リファレンス]

 

[書式] DATE(<年>,<月>,<日>)

 

[機能] <年>、<月>、<日> であらわされた日付の、シリアル値を返します。

 

<年>
 西暦を1~4桁の数値で指定します。通常は4桁で指定するといいでしょう。
 
<月>
 月を1~12の数値で指定します。12を超える値を指定すると、超えた月数分だけ先の
 翌年以降の対応月とみなされます。
 
<日>
 日にちを1~31の数値で指定します。月末より大きい値を指定すると、超えた日数分
 だけ先の翌月以降の対応日とみなされます。
 
[引数]

 


 

●●● 日付の正体を見破ろう ●●●

 

今回は、次のような簡単な日程表を作成しながら、DATE関数とシリアル値について理解を

深めていきましょう。 「西暦」、「月」、「日」を変更すると、「日付」と「曜日」が自動的に変化

するというワークシートです。

date関数1_1.jpg

 

 

・・・・・しかし、

その前にどうしても正確に理解しておかなければならないことが、1つだけあります。

それは、「シリアル値」です。 

 

ということで、まず、日付のシリアル値とは何か。 簡単に言ってしまうと

 

  「1900年1月1日を 1 とする連番」 (Macでは1904年1月1日を1)

 

です。 つまり、ただの整数なのです。

具体的にあらわすと、次のようになります。

 

「1900年1月1日」 は 「1」

「1900年1月2日」 は 「2」

   ・

   ・

   ・

「2008年12月31日」  は 「39813」

「2009年1月1日」    は 「39814」

 

では、なぜこれが日付になるのか --- それには、「表示形式」 が深く関わっています。

 

 

このことを確認するために、実際にちょっとした実験をおこなってみましょう。

まず、適当なセルに 2009/1/1 と入力します。

date関数1_pre1.jpg

(1) セルB2 に次のように入力する。

    2009/1/1 

すると当然のように、セルには

  「2009/1/1」

と表示されますね。 

 

次に、そのセルの表示形式を [標準] にしてみます。

date関数1_3.jpg 

(2) セルB2 を選択。

(3) [書式]メニュー から [セル] を選択。

(4) [表示形式]タブ の [分類] から 「標準」 を選択。

ここで、上図のように、ダイアログボックス内の[サンプル]の部分が「39814」となったのが

確認できたでしょうか。 

 

そして[OK]をクリックしてみます。

date関数1_pre2.jpg

(5) [OK]をクリック。

 

ワークシート上の値も、 「39814」 に変わりましたね。 

 

これがまさに日付の正体です。

 

つまり、「2009/1/1」 という日付の表示は、「39814」 という数値に 「yyyy/m/d」 という表示形式

を設定したものなのです。

 

実は、セルに「2009/1/1」 と入力した瞬間、Excel内部では次の2つのことがおこなわれています。

 

 ・ 「2009/1/1」 のシリアル値である 「39814」 という数値をセルに入力する。

 ・ そのセルに「yyyy/m/d」という表示形式を設定する。

 

このことを理解した上で例題に取り組めば、日付に関する理解がぐっと深まるはずです。

  

 

●●● 日程表の作成 ●●●

 

 では、実際にDATE関数を利用した計算式を入力していきましょう。

 

セルA6 には 「西暦」、「月」、「日」 で指定した日付を表示したいので、それらを計算元とした

式を入力します。

date関数1_2.jpg

(1) セルA6に、次の計算式を入力する。

   =DATE(B1,B2,B3)

 

すると、きちんと

  「2009/1/1」

と表示されましたね。

ここでも、Excelの判断で、自動的に  「yyyy/m/d」 という表示形式が設定されています。

実際に出力されている値は 「39814」 であるということに留意してください。

 

さて、数値ですから足し算ができます。翌日の日付をあらわすには、1 を足せばいいですね。 

date関数1_6.jpg

(1) セルA7に、次の計算式を入力する。

   =A6+1

(2) セルA7  の計算式をセルA8~A15 までコピーする。

 

つまり、1つ上のセルにどんどん 1 を足していくわけです。 こうすることで、計算式を使って連続

した日付を作成することができます。

ちなみにここでも、日付の書式が自動的に設定されています。

 

では次に、曜日の列に取りかかりましょう。 

date関数1_7.jpg

(1) セルB6 に、次の計算式を入力する。

   =A6

(2) セルB6  の計算式をセルB7~A15 までコピーする。

 

すると、A列と同じ日付が表示されてしまいました。 これも、「yyyy/m/d」 という表示形式が

自動的に設定されたことによります。 

では、表示形式を適切なものに変えてみましょう。 今回は、カッコ付きで曜日を表示してみ

ます。 

date関数1_8.jpg

(1) セルB6~B15 を選択。

(2) [書式]メニュー から [セル] を選択。

(3) [表示形式]タブ の [分類] から 「ユーザー定義」 を選択。

(4) [種類] のテキストボックスに、次のように入力する。

   (aaa)

(5) [OK]をクリック。

 

これで、セルの表示がきちんと曜日に変わります。 

あとは配置等を整えれば、冒頭のようなシートが完成します。

 

 

最後に、それぞれのセルが実際に出力している値を、確認してみましょう。

はじめにおこなったのと同様に、セルA6~B15 の範囲の表示形式を「標準」にしてみましょう。

すると、次のようになります。 

 

date関数1_9.jpg

ただの、数字の連番ですね。

 

このように、

 

   セルに表示されている値と、セルが出力する値とは、必ずしも等しくありません。

 

セル上の表示は、表示形式によっていかようにも変化するのです。 ですから、

 

   セルの表示にとらわれずに、

       「実際に出力しいる値は何か」ということに気を配る

 

ことが、Excelではとても大切なのです。