エクセル術

エクセルで日付データの認識は

日付データ

エクセルで日付の処理は1900年1月1日から9999年12月31日まで認識されます。

この日付のデータというのが面白い。例えば現在の日付を入力すると2007年5月7日・・・エクセルではこの様に表示はされるでしょう。

そう・・・表示だけは日付データとして見せています。では本当は?

本当は数値

39209

これが2007年5月7日の値である。(この値の事をシリアル値と呼ぶ。)

どういう事かと言うと、エクセルでは日付のデータは本来数値。表示形式によって数値を日付データとして扱っている。A1のセルの表示形式を「日付」から「数値」に変えてみればよく解るだろう。

最初に述べたようにエクセルでは1900年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()
今日の日付を返します。引数は指定なし。

モバイルバージョンを終了