エクセル関数の日付の互換性


エクセル関数では、実在しない日付の「1900年2月29日」を日付として認識してしまうという作りになっています。
これは何故かというとグレゴリオ暦の日付の理論として「4で割り切れる年を閏年とするが、100で割り切れる場合は閏年としない、でも400で割り切れる年は閏年とする」という理論になっています。
この理論上でいくと1900年は閏年にはなりません。従って「1900年2月29日」という日は存在しないことになります。しかし、Excel上では「1900年2月29日」という日付はシリアル値「60」の値として認識してしまうのです。ということになると「1900年3月1日」以前とそれ以降の日で1日ずれが出てくるということになります。

まぁ1900年なんて古い日付を計算することなんてめったに無いとは思いますが、もし計算する場合には注意するようにしてください。


多分、Excelが出始めた当時、Lotus 1-2-3からシェアを奪い取りたかったExcelが急いで互換性を満たしたところ変なところで間違いを犯しちゃったといったところでしょうか?





スポンサード リンク

スポンサード リンク

エクセルの関数を使って曜日を求める


エクセルで入力された日付から関数を使って曜日を算出すのには、色々な方法があります。

これが一番簡単な曜日の表示方法だと思います。
そうです。曜日を表示させるには関数は必要ないのです。

しかし、マクロでのプログラム上などで曜日を求める関数を使いたい場合は以下のように記述してみてください。
セルA1に日付が入力されている場合、セルB1に曜日を表示させるにはセルB1に「=WEEKDAY(A1)」と記入し、セルB1の書式設定をしてください。

更に、上記の例で行く場合、書式設定の分も一緒に行う関数などもあります。セルB1に「=TEXT(WEEKDAY(A1),"aaa")」と設定してみてください。これで書式設定を行うことなく曜日が表示されると思います。


また、VLOOKUP関数・CHOOSE関数を使って表示させるという技も見たことがありますがあまり使っている人はいないので、参考にしなくてもいいと思います。

以上、曜日を表示させる方法として何例かあげましたので参考にしてみてくださいね。




エクセル関数の説明



【IF】(論理関数)
 意味:対象となる条件式の結果によって値を返します。

 意味:文字と文字を結合して1つの文字列にします。

【LEFT】(文字列操作関数)
 意味:指定された文字数分の文字を文字列の左側から取得します。
【RIGHT】(文字列操作関数)
 意味:指定された文字数分の文字を文字列の右側から取得します。

【MID】(文字列操作関数)

【FIND】(文字列操作関数)
 意味:指定した文字が文字列の左側から何文字目かの値を返します。

 意味:指定範囲の値の合計値を返します。

【SUMIF】(数学/三角関数)
 意味:条件に一致する指定範囲内の値の合計を返します。
【TEXT】(文字列操作関数)
 意味:数値を文字列として書式設定します。

【SUBSTITUTE】(文字列操作関数)

【MAX】(統計関数)
 意味:指定範囲中の最大値を返します。

 意味:指定範囲中の最小値を返します。

【NOW】(日付/時刻関数)
 意味:現在の日付、時刻をシリアル値で取得します。
【CHOOSE】(検索/行列関数)
 意味:値が入っているリスト内から指定された値を取得します。