3/07/2016

Excel。Divide coating 。一行おきの塗り分けじゃなくて、アイテムごとで行を塗り分けたい。


Excel。一行おきの塗り分けじゃなくて、アイテムごとで行を塗り分けたい。

<条件付き書式+MOD関数とCOUNTIF関数>


BLOGで以前書きましたし、有名なテクニックで、1行おきに塗り分ける。

要するに、横縞模様に表をしたい時のテクニックで、
MOD+ROW関数と条件付き書式のコラボレーション技を使うのですが、
先日の研修でリクエストがあった中に、どうやったらいいんだぁ~という、
なかなか、歯ごたえのあるものがありましたので、今回はそれを紹介したいと思います。

それは、どんなリクエストだったのかというと、
プロジェクト名ごとに並び替えをしたデータがあって、しかも、数千件クラス。

そのままだと分かりにくいので、プロジェクトが変わるたびに、
そのプロジェクトの行を塗りつぶしたいというもの、
要するに、プロジェクト名ごとに横縞模様にしたいということ。

人力で塗り分けても良いのかもしれませんが、数千の件数では、
とんでもない時間がかかってしまいます。

幸いすでに並び替えは終わっているということだったので、
こんな方法はということで、早速ご紹介をしていきましょう。

まず考え方ですが、
プロジェクト名が変わったか?変わらないか?を判定させることが必要になります。

また今回は、プロジェクト名ごとにまとまっておりますので、その変わり目に、数値。

今回は、1を出力させて、それを元に、条件付き書式を設定していくことにします。

では、C3にIF関数ダイアログボックスを表示させます。

論理式には、COUNTIF(A$3:A3,A3)=1
真の場合には、1
偽の場合には、""

数式は、

=IF(COUNTIF(A$3:A3,A3)=1,1,"")


慣れている方は、直接数式バーで入力した方が楽だと思います。
あとは、数式をオートフィルを使ってコピーしましょう。

これで、文字が変わったことが分かるようになりました。

それでは、この1を使って、条件付き書式を作成していきます。
該当の範囲を選択します。

今回は、A3:B21です。

そして、ホームタブの条件付き書式から、
新しいルールの「数式を使用して、書式設定するセルを決定」を選択しましょう。

続いて、「次の数式を満たす場合に値を書式設定」のボックスに数式を入力してきます。

=MOD(SUM(C$3:$C3).2)=1

と数式を入力して、書式ボタンをクリックして、任意の書式を設定しましょう。
今回は、赤系の色を選択しました。

そして、OKボタンをクリックすると、

これで、完成しました。

このように、アイテム(プロジェクト名)ごとに塗り分けることが出来ました。

今回のようにワンクッション置くことによって、
比較的容易にやりたいことが表現できますので、
いっぺんに作ろうとはしないで、Excelの資料を作るようにするといいかもしれませんね。