エクセルで日付データの認識は
日付データ
エクセルで日付の処理は1900年1月1日から9999年12月31日まで認識されます。
この日付のデータというのが面白い。例えば現在の日付を入力すると2007年5月7日・・・エクセルではこの様に表示はされるでしょう。
そう・・・表示だけは日付データとして見せています。では本当は?
本当は数値
39209
これが2007年5月7日の値である。(この値の事をシリアル値と呼ぶ。)
どういう事かと言うと、エクセルでは日付のデータは本来数値。表示形式によって数値を日付データとして扱っている。A1のセルの表示形式を「日付」から「数値」に変えてみればよく解るだろう。
最初に述べたようにエクセルでは1900年1月1日からしか日付として認識しない。そしてこの始点を数値の1としている。1とセルに入力し、表示形式を「日付」にすると1900年1月1日となる。
そして1日増やすごとに数値も1増し、1900年1月2日であれば、数値2となる。1900年2月1日の様に月・年をまたがる事になっても31日から1日経過しただけなので数値は32となる。
2007年5月7日は1900年1月1日から39209日経過しているとも言える。
では時間は?
日付データは1日=1という事が解った。
では時間データはどうなのか?答えはこれも数値である。
単純に1日=24時間=1なので12時間であれば0.5となる。2時間は1÷24×2となるので0.0833333…
実はこの時間というのが曖昧で、割り切れない数値が出てくる。特に秒数まで扱うと厄介である。1秒は数値でいくつになるのか?
1÷(60×60×24)=0.0000115740740740740…..
となり、1秒が割り切れないのである。依って時間を扱う場合は数値として考えるのは不向きであろう。まぁExcelは賢いのでちゃんと計算してくれてますが。
日付を使って色々
日付の場合だと「常に明日の日付を表示させたい」時に「=TODAY()+1」とすると、今日の日付+1で明日になる。
ただ、一月後・・・一年後・・・を表示させたい場合等には30日の時もあれば31日の時もあるのでズレてしまう。
そういう場合は=DATE関数を使う。
日付を使う場合にはDATE関数やYEAR,MONTH,DAY、シリアル値についても覚えておくと良いだろう。
今日から1ヶ月後を表示
=DATE(YEAR(TODAY()),MONTH(TODAY())+1,DAY( TODAY()))
DATE関数
=DATE(年,月,日)
引数の年月日からシリアル値を返します。
YEAR関数
=YEAR(シリアル値)
シリアル値の年数だけを返します。
TODAY関数
=TODAY()
今日の日付を返します。引数は指定なし。
関連記事
- 前の記事
- Excel2007で郵便番号変換は?
- 次の記事
- ファイルを開くダイアログ