5/25/2017

Excel。セル結合対応の一行おき塗りつぶしを行うための方法【MOD&COUNTA】

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)
で算出してみましょう。

算出された結果をみれば、
偶数・奇数に分かれていることがわかりますね。

結合セルを含めた一行おきの塗りつぶしを行いたい場合には、
軸になる結合セルの件数を数えてあげるようにすると、設定できるようです。