エクセルの「2003」をお使いの読者がいたら、関数式を自動作成する機能「カンタン関数ウィザード」を試してほしい[注1]。ボタンからウィザード画面を開き、「曜日を求める」を選択。A2セルに入った日付を指定すると、次のような式が立てられる。

[注1]カンタン関数ウィザード
このウィザードを利用するには「ツール」メニューの「アドイン」を選び、開く画面で「カンタン関数ウィザード」をオンにする

 =TEXT(WEEKDAY(A2),"aaa")

 実はこの式、“答え”は正しく表示されるが、“考え方”は完全に間違っている。「雑誌やマニュアル本でも、同様の式を教えていた…」と反論する人がいるかもしれない。だがそれは、もともとこの式がエクセルの「ヘルプ」に書かれていた式だったことに由来する。すなわち、「カンタン関数ウィザード」が登場する以前から、マイクロソフトは“間違った式”を世に広めていたわけで、それを鵜呑みにした雑誌や書籍も、同じ間違いを犯してきたのである。

ヘルプ、雑誌、解説本…、人々を惑わす“誤った教え”

 改めて、マイクロソフトが広めた「=TEXT(WEEKDAY(A2),"aaa")」という式を分析してみよう。先頭のTEXT関数は、1番目の引数に指定した数値や日付に対し、2番目の引数に指定した「表示形式」を設定してセルに表示する関数だ。表示形式は、「年」なら「y」、「月」なら「m」といった書式記号を、「"」(ダブルクォーテーション)で挟んで指定する。ここで指定している「aaa」は、日付の曜日を漢字1文字で表示するための書式記号。TEXT関数を使わない場合も、日付が入ったセルの「表示形式」を「ユーザー定義」とし、「種類」欄に「aaa」と指定することで、日付の曜日を自動表示できる。


 勘のいい人なら、もうお気付きだろう。書式記号「aaa」の意味とTEXT関数の働きを考えれば、曜日を表示する関数式は、次の式が“正解”のはずだ。=TEXT(A2,"aaa")そう、マイクロソフトが作成した式は、WEEKDAY関数の部分が余計なのである。


[では、この式のWEEKDAY関数は:次のページへ]