Excel。セル結合対応の一行おき塗りつぶしを行うための方法
<条件付き書式・MOD&COUNTA関数>
一行おきに塗りつぶしを行うには、
MOD&ROW関数と条件付き書式を使うことによって、
表現することができますが、
次のような表の場合はどのようにしたらいいのでしょうか?
AB列の表があります。
このようにデータベースではなくて【表】として作成することもありますが、
A列が結合されているわけですね。ここが問題になるわけですね。
そして完成したいのは、
DE列のように、そのブロックというか、
結合されているセルを一行おきに塗りつぶしたいわけです。
このぐらいの行で塗りつぶしをするならば自力で…と思いますが、
表のサイズが大きくなると、時短の観点からみても、
自力というわけにはいかないでしょう。
『MOD&ROW関数と条件付き書式』で解決するように思えますが、
確認してみましょう。
A2:B18を範囲選択して、条件付き書式の『新しいルール』をクリックします。
新しい書式ルールダイアログボックスが表示されますので、
『数式を使用して、書式設定するセルを決定』をクリックして、
『次の数式を満たす場合に値を書式設定』に
=MOD(ROW(),2)
と設定します。
=MOD(ROW(),2)=1
としていないのには、1という結果になればExcelではTRUEと判定されます。
そして、条件付き書式は、TRUE。
すなわち成立すれば、設定した書式を反映させるようになっていますので、
今回は=1を省略しております。
そして、書式ボタンをクリックして、
塗りつぶしの色を設定してOKボタンをクリックしてみましょう。
やっぱりうまくいきませんね。
中国語とイタリア語が塗りつぶされていますが、
これは、結合されていても、
結合されている最初セル番地のA7とA11が
ROW関数で7と11の奇数で算出されるので、
2で除算すると、余りが1になり、
条件付き書式で設定した書式が反映されますので、
中国語とイタリア語は隣接していても、塗りつぶされているわけです。
では、どのようにしたらいいのでしょうか?
ポイントになるのは、結合されている列ですね。
このようにやりたいことが、
何かパターンがあるかどうかを見つけるようにすると、
解決方法が見つかりやすいかと思います。
見てみると、【イベント数】が使えそうですね。
英会話が1件目。中国語が2件目。
イタリア語が3件目。フランス語が4件目…
このように文字を数える関数。
つまり、『COUNTA関数』を使ってあげれば解決しそうですね。
では、A2:B18を範囲選択して、
条件付き書式から
新しいルールダイアログボックスを表示するところまでいきましょう。
『次の数式を満たす場合に値を書式設定』に
=mod(counta($a$2:$a2),2)
と設定しましょう。
書式から塗りつぶしたい色を選択したら、OKボタンをクリックしましょう。
すると、セル結合対応の一行おきの塗りつぶしが出来ました。
イマイチどのようになっているのか、わかりにくいので、CD列に
=counta($a$2:$a2)
で算出してみましょう。
算出された結果をみれば、
偶数・奇数に分かれていることがわかりますね。
結合セルを含めた一行おきの塗りつぶしを行いたい場合には、
軸になる結合セルの件数を数えてあげるようにすると、設定できるようです。