エクセルの「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関数は:次のページへ]

この先は会員の登録が必要です。今なら有料会員(月額プラン)が12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら