エクセルで日付データの認識は
2007年05月07日
Excelの知識
■ 日付データ
エクセルで日付の処理は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秒が割り切れないのである。
依って時間を扱う場合は数値として考えるのは不向きであろう。
■ 日付を使って色々
日付の場合だと「常に明日の日付を表示させたい」時に「=TODAY()+1」とすると、今日の日付+1で明日になる。
ただ、一月後・・・一年後・・・を表示させたい場合等には30日の時もあれば31日の時もあるのでズレてしまう。
そういう場合は=DATE関数を使う。
=DATE( YEAR( TODAY() ) , MONTH( TODAY() ) +1 , DAY( TODAY() ) ) |
これで今日から1か月後の日付を表示する。
日付を使う場合にはDATE関数やYEAR,MONTH,DAY、シリアル値についても覚えておくと良いだろう。
コメント一覧