9/05/2022

Excel。隔週ごとに行全体を塗り分けるにはどうしたらいいの。【biweekly】

Excel。隔週ごとに行全体を塗り分けるにはどうしたらいいの。

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

スケジュール表や月報の売上表など日曜日から土曜日ごとの隔週で塗り分けることができれば、見やすい資料が作れます。

どのようにしたら、手早く、隔週ごとに塗り分けることができるのでしょうか?


しかも、次の表のように、行全体を塗り分けたいとします。


日曜日から土曜日なので、この日曜日は何回目に登場しているとか、曜日をWEEKDAY関数で算出してとか、考えてしまいそうですが、Excelには、第何週なのかを算出してくれる「WEEKNUM関数」というのがあります。


隔週で塗り分けたいわけですから、WEEKNUM関数をつかって算出した週番号が、奇数か偶数かわかるようにしてあげれば、隔週を表現できます。


そして、条件で塗りつぶしをしたいわけですから、「条件付き書式」と合わせて使うことで、隔週ごとに行全体を塗りつぶすことができそうです。


まずは、WEEKNUM関数をつかった数式をどのように作ればいいかを確認しておきましょう。


E2には、次の数式を設定しました。

=MOD(WEEKNUM(A2,1),2)


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


「0(ゼロ)」と「1」で隔週を判断することができています。

これを条件付き書式に組み込むわけです。


また、日曜日から土曜日を「週」とするには、WEEKNUM関数の2つ目の引数で、どの曜日を起点とするかを設定することも出来ます。


それでは、条件付き書式を設定していくことにします。


A2:C17を範囲選択して、ホームタブの条件付き書式にある「新しいルール」をクリックします。


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


「数式を使用して、書式設定するセルを決定」をクリックして、「次の数式を満たす場合に値を書式設定」のボックスに、数式を設定します。


設定する数式は、先程確認した、MOD+WEEKNUM関数です。

=MOD(WEEKNUM($A2,1),2)


この数式の結果が「1」ならば、Excelでは「1」を「TRUE」としているので、条件をみたす。

つまり、塗りつぶし対象になるというわけです。


なお、WEEKNUM関数の最初の引数を、「$A2」と、列固定の複合参照にしているのは、行全体を塗りつぶし対象にするためです。


このように、条件付き書式の条件にMOD+WEEKNUM関数を組み合わせることで、隔週ごとに塗り分けることができます。