8/03/2023

Excel。日曜日なら行全体を塗りつぶすなら、曜日はTEXT関数で表示すると楽です。【line fill】

Excel。日曜日なら行全体を塗りつぶすなら、曜日はTEXT関数で表示すると楽です。

<条件付き書式+TEXT関数>

スケジュール表などで、土曜日だったら青色で日曜日だったら赤色で、しかも行全体を塗りつぶしたい場合、どのようにしたらいいのでしょうか?

条件付き書式

条件付き書式をつかいますが、その前の準備として、B列の曜日にはTEXT関数をつかって、表示します。


B2には、

=TEXT(A2,"aaa")

と設定します。オートフィルで数式をコピーしています。


こうすることで、A2の日付が変わると、曜日も連動して変わってくれます。


TEXT関数は、表示形式を設定する関数です。

「”aaa”」と設定すると日付を、曜日で表示できます。なお「”aaaa”」とすれば「○曜日」と曜日をつけて表示します。


ここから、条件付き書式をつかって設定します。


A2:B11を範囲選択します。


ホームタブの条件付き書式にある「新しいルール」をクリックします。


新しい書式ルールダイアログボックスが表示されます。


「数式を使用して、書式設定するセルを決定」をクリックします。


条件を入力するボックスに

=$B2="日"

と設定したら、書式ボタンをクリックして、塗りつぶしたい色を設定します。


最後に、OKボタンをクリックしたら完成です。


「$B2」と複合参照にすることで、対象を行全体にすることができます。


土曜日も同じように設定したい場合には、

=$B2="土"

という条件を追加すればOKです。


今回のポイントは、条件付き書式ではなく、曜日をどのように表示するのがいいのかということです。


単純に、B2に、

=A2

とセル参照させてから、表示形式で「”aaa”」とすれば、日付を曜日に変更してくれますが、条件付き書式で「日」という条件にしても、リアクションしてくれません。


なぜならば、日付を曜日に表示を変えただけだからです。

日付はもともとシリアル値なので、「日」という文字と合致しませんので、リアクションしてくれません。


TEXT関数は、文字型に変えてくれるので、「=”日”」としても、リアクションしてくれるというわけです。


また、WEEKDAY関数をつかう方法もあります。

ただ、直接条件付き書式のルールでWEEKDAY関数を設定するのも面倒ですし、WEEKDAY関数は、日曜日が「1」というような数値で算出されるので、「1」だったら「日」と表示させる関数を別でつくらなければなりません。


このようなことから、TEXT関数で曜日を算出させてから、「土」とか「日」といった文字で条件付き書式の条件を設定するほうが、わかりやすいように感じます。