忍者ブログ
29 April

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

15 January

[Excel]条件付き書式で、任意の列の内容が変わるまで行の色を変える

説明が難しいですが、要はこんな感じにしたいよねってことです。


リファレンス見たりググッても、「行毎に色を変える」っていうのは出てくるんですが、
ある列の内容が変わったときに、同じ行まで色を変えるっていうことがなかなかググッても出てこない…(説明が下手なので、検索ワードが適切じゃないから見つからなかっただけなのかもしれないけど)

ちなみに、行ごとに色を変えるのは以下のとおり。もう枯れてるから載せなくてもいいかと思ったけど一応…

こういうテーブルがあって、行毎に色を変えるには、以下のような条件付き書式を設定してやればいいです。


=MOD(ROW(),2)=0

この2をいろいろと変えれば、3行に1行だけ色を変えるとかにも拡張できますね。
こっちは詳細な解説しないので他のサイト当たってください。

んで、本題。

条件付き書式は、ひとつのセルに最大3つまでしか設定できません。
まぁVBAでやればいいじゃんって話なんですが、それだとVBAを有効にするまでは色変わらないし、会社によってはVBAが全く動かない人いるし、自分みたいにExcel2008なのでAppleScriptにマイグレしないといけない…とかそういう手間を掛けたくないので、可能なかぎり標準機能で実装します。

方法は考えたらすごく簡単でした。



(C2からテーブルが始まってる前提で説明します)
テーブルの左隣の行に、以下の関数を設定
=IF(C3<>C2,NOT(B2),NOT(NOT(B2)))
つまり、特定列の中身が(今回は日付:C列)前の行と違っていたら、B2(今は空欄ですが、エクセルでは空欄は0として認識されるので、ブーリアン的にはfalse)を反転してtrueに、そうじゃなかったらfalseのまま(B2が空欄なので、NOTなどの結果をブーリアンで返す関数を入れたかったのでNOT入れ子にしてますwうまいやり方あったら教えて!)にするという内容です。

んで、8行目までオートフィルした結果がこれ

ここまでくればもうわかったかな?w

あとは色を変えたい領域を選択して、以下の条件付き書式を設定


=$B3=FALSE

んで、B列は見人にとっては不要なので非表示にでもしちゃいましょう。
はい、めでたしめでたし↓


今回は、行毎に色を変えるように、条件付き書式の数式のみで解決できませんでした。
こうすればできるじゃん!っていう方法知ってる人いたら教えて下さーい!
PR