WEEKDAY()と[aaa]

Excel の曜日の表示で勘違いしていたことがありました。

セルA2に日付が(たとえば2008-4-4)があり、セルB2に [=WEEKDAY(A2)] として、これに表示形式 [aaa] を設定しても正しく曜日が表示されないのはなぜだろう? ということです。

答えは、表示形式 [aaa] (や [aaaa], [ddd], [dddd] )は、関数 WEEKDAY()の戻り値1〜7にたいして「日」〜「土」を表示するものではない、でした。
『あぁ〜[aaa]の勘違い』に詳しい解説があります。


上の表C列はB列と同じ式 [=WEEKDAY(A2)] で表現形式が標準です。WEEKDAY関数の結果は(当たり前ですが)正しい値を返しています。表示形式 [aaa] を設定するとB列になります。

表示形式 [aaa] は、WEEKDAY関数の戻り値1〜7を引数にとるのではなく、『シリアル値が1〜7』にあたる日付(1904-1-2 〜 1904-1-8)と解釈し「1904-1-2 〜 1904-1-8」の曜日を表示している、と理解すればよいのでしょう。(D列)

Excelで曜日を表示したいとき( A1 に日付、B1に曜日)は、B1に

  1. =A1 として表示形式を [aaa]
  2. =TEXT(A1,”aaa”) として表示形式を [標準]

これが正しく、そしてシンプルな方法でした。

サンプルファイルをダウンロード

【今日の教訓】

初心者はわざわざ難しいことをして間違いを冒す