Ver 6.3
WEEKDAY 関数の戻り値を曜日の表示形式に変換するリスクとは
別の日付の曜日が表示される可能性があります。
関連する記事
曜日がズレる・・・
WEEKDAY 関数の戻り値を曜日に変換すると、曜日がズレる場合があります。
試しに、WEEKDAY 関数の戻り値を使用して『2020年7月23日』を曜日に変換してみましょう。
2020年7月23日は『木曜日』であるため、『4』を返します。
セルC2の書式コードに【aaaa】と入力すると・・・
セルC2には『水曜日』と表示されます。
2020年7月23日は『木曜日』であるため、セルC2に表示された曜日はズレていることがわかります。
曜日がズレる理由は・・・
表示された曜日は確かにズレていますが、セルC2は『2020年7月23日』の曜日を表示しているのでしょうか?
セルC2に表示されてる曜日の日付を確認してみましょう。
セルC2の書式コードに【yyyy.mm.dd】と入力すると・・・
セルC2には、『1900年1月3日』と表示されます。
セルC2は『1900年1月3日』の曜日を返していたことになります。
ではなぜ、別の日付の曜日を返しているのでしょうか?
曜日がズレているわけではない・・・
日付がシリアル値で管理されていることは有名ですが、実は曜日もシリアル値で管理されています。
そのため、曜日の書式に変換するとセルの値はシリアル値として扱われます。
WEEKDAY 関数は、0~7の数値を戻り値として返します。
この戻り値をシリアル値に変換しても、基準日から一週間以内の日付しか表示されません。
『1900年1月3日』の曜日が返されたのは、WEEKDAY 関数の戻り値である数値の『4』をシリアル値として曜日に変換したためだったわけです。
・日付の基準日を『1899年12月30日』に設定している場合の戻り値です。
曜日がズレなかったのは・・・
曜日がズレないのは、WEEKDAY 関数の戻り値とシリアル値の曜日が奇跡的に一致していいるためです。
WEEKDAY 関数の戻り値を曜日に変換する場合は、別の日付の曜日が表示されていることを理解した上で使用しましょう。
あまりオススメはできませんが・・・。
基準日を【1899年12月30日】に設定した場合
設定できるタイプは2つです。
- タイプ【1】
- タイプ【17】
タイプの入力を省略した場合も、タイプ【1】を入力したとみなされるため曜日がズレません。
基準日を【1900年1月1日】に設定した場合
設定できるタイプは2つです。
- タイプ【3】
- タイプ【12】
基準日を【1904年1月1日】に設定した場合
設定できるタイプは1つです。
- タイプ【16】