[書式] WEEKDAY(<シリアル値>,[出力方法])
[機能] <シリアル値> であらわされた日付を、曜日をあらわす 1~7 もしくは 0~6 の数値に変換します。)
<シリアル値> | 多くの場合、日付が入力されているセルを指定します。 |
[出力方法] | 1~3 の数値を指定します。 省略すると 1 とみなされます。 1 - 1(日曜)~7(土曜) 2 - 1(月曜)~7(日曜) 3 - 0(月曜)~6(日曜) |
●●● 曜日の表示だけなら、WEEKDAY関数は不要 ●●●
Excelで日付を扱う場合、まず一番に悩むのが曜日の表示かもしれません。しかし、もし曜日を
表示たいだけなら、実は WEEKDAY関数は必要ありません。
特定の日付に対応する曜日を表示したいだけなら、次のようにおこないます。
まずサンプルとなる日付を入力してみましょう。
(1) 項目名を準備する。
(2) セルA2 に 2008/12/1 と入力する。
(3) セルA2 を選択し、形が + になるようにセルの右下隅にマウスポインタ合わせる。
(4) セルA16 までドラッグ。
これで、日付を簡単に入力することができました。
それでは、この日付に対応する曜日を、B列に表示してみましょう。
(1) セルB2 に次の計算式を入力する。
=A2
(2) セルB2 の計算式をセルB3~B16までコピーする。
この計算式は、A列の内容をそのまま出力するだけの計算式です。つまり、B列の表示は
A列とまったく同じになります。
では、いよいよ曜日を表示してみましょう。
(1) セルB2~B16 を選択。
(2) [書式]メニュー から [セル] を選択。
(3) [表示形式]タブ の [分類] から 「ユーザー定義」 を選択。
(4) [種類] のテキストボックスに、次のように入力する。
aaa
(5) [OK]をクリック。
これで、セルの表示は曜日に変わります。
つまり曜日を表示するには、
「日付のシリアル値が入力されたセルに aaa という表示形式を設定」
するだけなのです。
実は、セルA2 も セルB2 も 「39783」 という数値を出力しています。この数値を、
yyyy/m/d
という表示形式で表示したのが、セルA2 の 「2008/12/1」 という表示、
aaa
という表示形式で表示したのが、セルB2の 「月」 という表示なのです。
●●● WEEKDAY関数の使い方 ●●●
さて、では WEEKDAY関数 はいったいどんな時に使うのでしょうか。
それは、
「計算式内で、セルに入力されている日付(シリアル値)に対応する曜日」
を知りたい時です。
たとえば次のようなケースです。
C列に計算式を入力して、日曜日のところには「休日」と表示させるようにしたいとします。
こんな時には、WEEKDAY関数 が必要になります。
この時、セルC2 に次のような計算式を入力し、下方向にコピーします。
=IF(WEEKDAY(A2)=1,"休日","")
この計算式は、
セルA2のWEEKDAY関数の結果が1なら、「休日」を出力しなさい
という意味になります。
もしかすると、同じことをするのに、
「もし セルB2 が "日" なら」
という意味で、
=IF(B2="日","休日","")
という計算式を考えた方もいるかもしれません。
でも、これは誤りです。
なぜなら、前述のとおり、実際にセルB2が出力している値は、「日」という文字列ではなく、
「39783」という数値だからです。
「この数値(シリアル値)が、何曜日か?」
を調べるのが、まさにこの WEEKDAY関数 の役割なのです。
●●● 曜日によって色を変えるのにも WEEKDAY関数 ●●●
曜日によって文字の色や、セルのパターンの色を変えたいことがありますね。
そんな時には、この WEEKDAY関数 と、前回もやった条件付き書式を利用します。
たとえば先ほどのシートで、日曜日の行が ピンク色 になるようにしてみましょう。
(1) セルA2~C16 を選択。
(2) [書式]メニュー から [条件付き書式] を実行。
(3) 「数式が」 を選択。
(4) テキストボックスに、次の計算式を入力する。
=WEEKDAY($A2)=1
(5) [書式]をクリック。
(6) [パターン]タブを選択し、[色]から「ローズ」 を選択。
(7) [OK]をクリック。
(8) [OK]をクリック。
これで、次図のように、日曜日の行がピンク色になりました。もちろんA列の日付を変えれば、
それに合わせて、ピンク色になる行も変化します。
ここで少し難しいのは、
$A2
という表現かもしれません。
Aの前にだけ「$」が付いているのがポイントです。
これは、列だけを絶対参照にした複合参照です。この表現を計算式内で使うと、コピーした際に、
列部分の参照だけ変化させないようにできます。その結果、コピー後のセル参照は、
A B C
1
2 $A2 $A2 $A2
3 $A3 $A3 $A3
4 $A4 $A4 $A4
・
・
といった様子になります。
条件付き書式で入力する条件式でも、このはたらきが継承されます。
逆にこれを知らないと、1列ずつ別々に条件付き書式を設定しなければならないので、かなり
不便です。
WEEKDAY関数で重要なのは、実はこの関数そのものではなく、シリアル値と表示形式の関係
をきちんと理解することです。
ということで、次回も日付関連の関数をピックアップして、理解を深めていきたいと思います。