複雑な計算やグラフを作成できるエクセルには、さまざまな機能が搭載されています。会社の事務として働いていると、カレンダーやイベントスケジュールを作成することもあるでしょう。カレンダーを作る以上、白黒ではなく土日に色を付けてほしいと言われることもあります。手作業で色を付けていたら途方もない作業量が必要ですが、こういった場合に使える便利機能はないのでしょうか?
この記事では、曜日に色を付ける際に使えるWEEKDAY関数の使い方を解説します。曜日による定例行事を自動出力する方法など、他にもWEEKDAY関数で実現できることを解説しているので、ぜひ参考にしてください。
目次
条件付き書式とWEEKDAY関数で曜日に色を付ける
曜日に色を付けるには、条件付き書式とWEEKDAY関数を使います。条件付き書式とは、セルに特殊な書式を設定するものです。例えば「土曜日は青色で表示する」「日曜日は赤色で表示する」といったことが可能です。条件には数式を使う必要があり、ほとんどの場合関数を使用します。条件・数式と聞いて、多くの方がパッと思い浮かべるのはIF関数でしょう。IF関数でも実現できますが、曜日にはさまざまな表示方法があります。土曜日と表すこともあれば、(土)と丸かっこで表示する、Saturday、Sat、(Sat)など、英語で表示するなど、表現方法は人によって異なります。IF関数で数式を作るとなると、考えうる表示方法をすべて数式に組み込まなければなりません。そこでWEEKDAY関数を使うのです。
WEEKDAY(ウィークデイ)関数とは
WEEKDAY関数とは、参照先のセルに入力された日付をもとに曜日を取得して、対応する返り値(戻り値)を出力する関数です。曜日ではなく1や2といった返り値を出力するため、難しいと考える方は多いです。しかし、この返り値を使ってさまざまな用途へ応用できます。いざ使うときに混同してしまわないよう、引数の仕組みや使い方をしっかり理解しておきましょう。
WEEKDAY関数の数式
WEEKDAY関数は、下記の数式で表現されます。
=WEEKDAY(シリアル値,週の基準)
第1引数のシリアル値や、第2引数の週の基準など、見ただけではわからない難しい言葉が並んでいるため、順に解説していきます。
まず、シリアル値とは簡単にいえば参照先に記入された日付のことです。要は参照先のセルと思って構いません。シリアル値は必ず日付を入力しなければならず、記入を忘れる、日付以外の値が入力されるとエラーが発生します。A3セルやC5セルといった、セル番地がシリアル値に入るので、日付の入ったセルだと覚えれば、そこまで難しく感じることはないでしょう。
次に第2引数「週の基準」ですが、複雑なので苦手意識を持つ方は多いです。WEEKDAY関数は、1週間が何曜日から始まるかによってパターン1、パターン2といったいくつものパターンに分かれており、週の基準とは、そのパターンの値を指しています。
月曜から始まって、日曜で終わるのか、日曜から始まって月曜で終わるのか、はたまた水曜に始まって火曜で終わるのか、人によって1週間の捉え方はさまざまです。
1週間は7日なので、7パターンかと思いきや、10パターンの週の基準があり、これがWEEKDAY関数を複雑たらしめる要因です。シリアル値と違って、週の基準は省略可能で、その場合パターン1の日曜始まりになります。下記に10通りのパターンをリストアップしました。ぜひ参考にしてください。
週の基準(パターン) | 始まりと終わりの曜日 | 返り値 |
1または省略 | 日曜始まり土曜終わり (WEEKDAY関数を使う際に週の基準を省略すると、この返り値が返される) | 日曜(1)、月曜(2)火曜(3)、水曜(4)木曜(5)、金曜(6)、土曜(7) |
2 | 月曜始まり日曜終わり (返り値は1から7) | 月曜(1)、火曜(2)水曜(3)、木曜(4)金曜(5)、土曜(6)、日曜(7) |
3 | 月曜始まり日曜終わり (返り値は0から6) | 月曜(0)、火曜(1)水曜(2)、木曜(3)金曜(4)、土曜(5)、日曜(6) |
11 | 月曜始まり日曜終わり(パターン2と同じ) | 月曜(1)、火曜(2)水曜(3)、木曜(4)金曜(5)、土曜(6)、日曜(7) |
12 | 火曜始まり月曜終わり | 火曜(1)、水曜(2)木曜(3)、金曜(4)土曜(5)、日曜(6)、月曜(7) |
13 | 水曜始まり火曜終わり | 水曜(1)、木曜(2)金曜(3)、土曜(4)日曜(5)、月曜(6)、火曜(7) |
14 | 木曜始まり水曜終わり | 木曜(1)、金曜(2)土曜(3)、日曜(4)月曜(5)、火曜(6)、水曜(7) |
15 | 金曜始まり木曜終わり | 金曜(1)、土曜(2)日曜(3)、月曜(4)火曜(5)、水曜(6)、木曜(7) |
16 | 土曜始まり金曜終わり | 土曜(1)、日曜(2)月曜(3)、火曜(4)水曜(5)、木曜(6)、金曜(7) |
17 | 日曜始まり土曜終わり(パターン1と同じ) | 日曜(1)、月曜(2)火曜(3)、水曜(4)木曜(5)、金曜(6)、土曜(7) |
上記の表の通り、何曜日から始まるかで、返り値が変わってきます。週の基準1を指定してWEEKDAY関数を使った場合、日付をもとに取得した曜日が月曜日の時は「2」が返り値になります。一方、週の基準13を指定すると、月曜日は「6」という返り値になり、同じ月曜日でも返り値がズレていく仕組みです。
また、パターン2と11は月曜スタート、返り値1で同じ内容を指しているのでどちらを使っても構いません。しかし、パターン3は月曜スタートで返り値が0です。パターン3だけは別ものとして、扱いましょう。
おすすめなのは週の基準を1にするか、省略して日曜始まりのパターンにすることです。火曜始まりや金曜始まりといった、複雑な思考を必要とするパターンを使うことはまずないので、パターン1をしっかり覚えておきましょう。
ここまでの内容をまとめると、WEEKDAY関数の第1引数は日付の入った参照先のセル(記入必須)、第2引数は週の始まりの曜日パターンとなります。
WEEKDAY関数の使い方
いざWEEKDAY関数を使ってみると、上記の画像のように参照先の曜日に対応した数字が表示されます。曜日ではなく返り値が表示されるだけですが、どのようにして曜日に色を付けるのでしょうか?
特定の曜日に色を付ける
条件付き書式とWEEKDAY関数を使えば、土曜は青色、日曜は赤色といった色塗りが自動でできます。条件付き書式の概要、WEEKDAY関数の概要がわかったところで、曜日に色を付ける方法を見ていきましょう。
見出しを除く表全体を選択して、ホームタブの「条件付き書式」から「新しいルール」を選択します。ルールは1つずつ設定するため、一気に赤色と青色にすることはできません。日曜日を赤色にするルール、土曜日を青色にするルールを順に作成します。まずは日曜日を赤色のフォントを赤色に変えるルールを作りましょう。
ここではB3からD14を選択します。項目の一番下にある選択肢「数式を使用して、書式設定するセルを決定」をクリックすると、数式を入力することになるので、WEEKDAY関数を入力します。
今回のケースでは、週の基準を1(日曜始まり)にしました。返り値が1になったらという数式を記入したいので、数式は下記のようになります。
=WEEKDAY($B3,1)=1
行は1つずつ下にズラしていきますが、列は動かしたくないので、B列に絶対参照をかけましょう。この数式を条件付き書式に設定すると、「B3セルの日付が1(日曜日)だったらTRUEを返してフォントを赤にする」という数式の完成です。
次に画面右下の書式を選択して、フォントタブから文字の色を赤に変えましょう。OKをクリックしたら、表の中の日曜日に該当する部分が赤色に変わっています。
土曜日を青色に変えるには、日曜日を赤色にした時と同じことを繰り返せば大丈夫です。見出し以外の表を範囲選択して、ホームタブの条件付き書式から「新しいルール」を選びます。「数式を使用して、書式設定するセルを決定」をクリック、再びWEEKDAY関数の数式を入力しましょう。今度は土曜日なので、週の基準を1にした場合、返り値は7になります。数式は下記のようになります。
=WEEKDAY($B3,1)=7
今回のフォントの色選択では、文字の色を青に変えてみましょう。OKをクリックすると、表の土曜日に当たる部分が青色に変わります。
祝日に曜日に色を付けたい場合は?
土日だけでなく祝日にも色を付けたい。そういった場合、残念ながらWEEKDAY関数は使えません。WEEKDAY関数は曜日によって色を付ける関数です。月曜、火曜など、さまざまな曜日に祝日が設定されるためWEEKDAY関数では表現できません。ここで代わりに使うのがISTEXT(イズテキスト)関数です。ISTEXT関数は、引数に文字列が入っていたらTRUEを返す関数です。条件付き書式は、条件式の結果がTRUEの時に書式に変更を加えるものなので、日付や曜日以外に、祝日の列を作って、それぞれ名前を書くことで、祝日がある日付、曜日に好きな色を付けられます。
手順としてはまず、祝日の列を作り、祝日がある場合は、祝日の名前や丸記号など何かしらの文字を入力しておくと、ISTEXT関数を使った際にTRUEが返ります。次に土曜と日曜にに色を付けた時のように、新しく書式ルールを作成しましょう。
ISTEXT関数の引数には、祝日の列の一番上のセルを選びましょう。数式は=ISTEXT(セル番地)となります。フォントの色は自由に選んでください。ここでは緑を選択します。OKをクリックすると、祝日のセルに文字が入っている行だけフォントが緑に変わりました。
曜日ごとの予定を自動で表示させる
WEEKDAY関数を使うと、毎週同じ曜日にあるイベントを自動表示させられます。会社では役員会議や集会など、毎週決まった曜日に開催が決まっているイベントがあり、それらを手作業でイベントスケジュールに作成していくのは一苦労です。そこで、IF関数とWEEKDAY関数を組み合わせることで、毎週同じ曜日にある予定を自動で表示させられます。
IF関数とは、引数に任意の条件を指定して「もし××だったら〇〇と表示する。それ以外の場合は△△と表示する」という条件付けをする関数です。
毎週木曜日に役員会議がある会社を例に出してみましょう。週の基準をパターン1(日曜始まり)とすると、木曜日の戻り値は5になります。IF関数の引数に指定すべき条件は、「もし参照先の返り値が5だったら、役員会議と記入する」という風になります。IF関数とWEEKDAY関数を組み合わせた数式は下記の通りです。
=IF(WEEKDAY(B3,1)=5,”役員会議”,””)
IF関数で何か文字を表示させたい場合、ダブルクォーテーションマークで表示内容を囲いましょう。文字列と判断してもらえずエラーが発生してしまいます。
WEEKDAY関数を使う際によくあるエラー
WEEKDAY関数は複雑な構造をしているため、予期せぬエラーが発生すると対処が難しいです。ここでは、WEEKDAY関数を使う際によくあるエラーを解説しますので、ぜひ参考にしてください。
#VALUE!
シリアル値(参照先の日付)がありえない日付の場合に発生するエラーです。2022年2月31日はありえない日付ですよね。日付をオートフィルで作成すると、つい各月の終わりの日が30日なのか、31日なのか気にせず作業を進めてしまいます。#VALUE! エラーが出たら参照先の日付は実在するのか調べてみましょう。
循環参照
シリアル値を指定する箇所に、WEEKDAY関数を記入しているセル番地を入力してしまうと、循環参照が発生してしまいます。これは参照先のセルを間違えているだけなので、正しくシリアル値を指定しましょう。
#NUM!
第2引数の「週の基準」は全部で10パターンありますが、存在しないパターン数を入力してしまうと#NUM!エラーが発生します。基本はパターン1を使うといった癖を付けておくと良いでしょう。
まとめ
エクセルで曜日に色を付ける場合は、条件付き書式とWEEKDAY関数を組み合わせて使いましょう。WEEKDAY関数は構造が難しい関数ですが、引数に参照先の日付が入ったセルを指定すれば、戻り値は簡単に求められます。WEEKDAY関数の数式さえわかってしまえば、条件付き書式は感覚的にわかるので、まずはWEEKDAY関数の仕組みを理解しましょう。
キャリチェンでは、専門のキャリアコンサルタントが女性のキャリアアップやキャリアチェンジをご支援いたします。
転職にまつわるささいなご相談から、自己分析などキャリアプランの作成、面接練習などの具体的な選考対策まで幅広くサポートいたします。
土日休みで残業もほとんどないお仕事も多数ございますので、「定時で上がってアフターファイブを楽しみたい!」など
プライベートとの両立を叶えたいという方は是非お問い合わせください。
今なら、LINEから3分ほどで簡単にお申し込みいただけます。
是非お気軽にご相談ください。