WEEKDAY関数 - 曜日に色を付ける [Excel関数リファレンス]

 

[書式] WEEKDAY(<シリアル値>,[出力方法])

 

[機能] <シリアル値> であらわされた日付を、曜日をあらわす 1~7 もしくは 0~6 の数値に変換します。)

 

<シリアル値>
 多くの場合、日付が入力されているセルを指定します。
 
[出力方法]  1~3 の数値を指定します。 省略すると 1 とみなされます。
   1 - 1(日曜)~7(土曜) 
   2 - 1(月曜)~7(日曜) 
   3 - 0(月曜)~6(日曜)
[引数]

 


 

●●● 曜日の表示だけなら、WEEKDAY関数は不要 ●●●

 

Excelで日付を扱う場合、まず一番に悩むのが曜日の表示かもしれません。しかし、もし曜日を

表示たいだけなら、実は WEEKDAY関数は必要ありません。 

特定の日付に対応する曜日を表示したいだけなら、次のようにおこないます。

 

まずサンプルとなる日付を入力してみましょう。

weekday関数1_1.jpg

(1) 項目名を準備する。

(2) セルA2 に 2008/12/1 と入力する。

(3) セルA2 を選択し、形が + になるようにセルの右下隅にマウスポインタ合わせる。

(4) セルA16 までドラッグ。

 

これで、日付を簡単に入力することができました。

それでは、この日付に対応する曜日を、B列に表示してみましょう。

weekday関数1_2.jpg

(1) セルB2 に次の計算式を入力する。

    =A2

(2) セルB2  の計算式をセルB3~B16までコピーする。

 

この計算式は、A列の内容をそのまま出力するだけの計算式です。つまり、B列の表示は

A列とまったく同じになります。

 

では、いよいよ曜日を表示してみましょう。

weekday関数1_3.jpg

(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関数 が必要になります。 

weekday関数1_4.jpg

 

この時、セルC2 に次のような計算式を入力し、下方向にコピーします。

  =IF(WEEKDAY(A2)=1,"休日","")

 

この計算式は、

  セルA2のWEEKDAY関数の結果が1なら、「休日」を出力しなさい

という意味になります。

 

もしかすると、同じことをするのに、

  「もし セルB2 が "日" なら」

 という意味で、

  =IF(B2="日","休日","")

という計算式を考えた方もいるかもしれません。

でも、これは誤りです。

なぜなら、前述のとおり、実際にセルB2が出力している値は、「日」という文字列ではなく、

「39783」という数値だからです。

  「この数値(シリアル値)が、何曜日か?」

を調べるのが、まさにこの WEEKDAY関数 の役割なのです。 

 

 

●●● 曜日によって色を変えるのにも WEEKDAY関数 ●●●

 

曜日によって文字の色や、セルのパターンの色を変えたいことがありますね。

そんな時には、この WEEKDAY関数 と、前回もやった条件付き書式を利用します。

 

たとえば先ほどのシートで、日曜日の行が ピンク色 になるようにしてみましょう。

weekday関数1_5.jpg

(1) セルA2~C16 を選択。

(2) [書式]メニュー から [条件付き書式] を実行。

(3) 「数式が」 を選択。

(4) テキストボックスに、次の計算式を入力する。

   =WEEKDAY($A2)=1

(5) [書式]をクリック。

(6) [パターン]タブを選択し、[色]から「ローズ」 を選択。

(7) [OK]をクリック。

(8) [OK]をクリック。

 

これで、次図のように、日曜日の行がピンク色になりました。もちろんA列の日付を変えれば、

それに合わせて、ピンク色になる行も変化します。

 

weekday関数1_6.jpg

 

ここで少し難しいのは、

  $A2

という表現かもしれません。

Aの前にだけ「$」が付いているのがポイントです。

これは、列だけを絶対参照にした複合参照です。この表現を計算式内で使うと、コピーした際に、

列部分の参照だけ変化させないようにできます。その結果、コピー後のセル参照は、

 

    A    B    C

2  $A2   $A2   $A2  

3  $A3   $A3   $A3  

4  $A4   $A4   $A4  

         ・

         ・

 

といった様子になります。

条件付き書式で入力する条件式でも、このはたらきが継承されます。

逆にこれを知らないと、1列ずつ別々に条件付き書式を設定しなければならないので、かなり

不便です。

 

WEEKDAY関数で重要なのは、実はこの関数そのものではなく、シリアル値と表示形式の関係

をきちんと理解することです。

 

ということで、次回も日付関連の関数をピックアップして、理解を深めていきたいと思います。