"BOKU"のITな日常

還暦越えの文系システムエンジニアの”BOKU”は新しいことが大好きです。

テーブルを使わずに、任意の行・列おきに背景色を変えた表を作る/EXCELの小ネタ

EXCELで一覧表を見やすくするため1行おきに色を変えるのは、よくやります。

一番簡単なのは、EXCELのテーブル機能を使うことです。

f:id:arakan_no_boku:20190225110950j:plain

でも、色々と事情があって(まあ、たいていは好みのも問題・・笑)、テーブル機能を使わないで、同じようにしたい時があります。

今回は、そのやり方を小ネタにします。

 

条件付き書式を使えばいいだけなんだけど

 

やり方そのものは超簡単です。

対象にしたい範囲を選択して「条件付き書式」の新しいルールを開き、数式を使用して書式設定するセルを決定で、以下の数式を入力すればいいだけです。

=AND(MOD(ROW(),2) = 1,ROW() > 1)

f:id:arakan_no_boku:20190225112130j:plain

ROW()は行番号を返す関数。

MOD(ROW(),2)は、行番号を2でわった余りを返すので、それが「=1」であるということは「奇数」なわけです。

でも1行目はヘダー行で色をつけたくはないので、「ROW()>1」で2行目以降だけの縛りをつけてます。

まあ・・実際には、別に2行目以降だけを選んで書式設定するなら、この部分は別にいりません。

=MOD(ROW(),2) = 1

だけでもいけます。

こうすると。

f:id:arakan_no_boku:20190225115148j:plain

いい感じですね。

 

テーブルと違うのは応用がきくところ

 

自分がテーブルではなく、条件付き書式を使う理由で一番大きいのは応用が利くからってのが大きいです。

頻度は少ないんですけど、時々、テーブルだとできない要望があるので・・。

2つほど例をあげてみますね。

 

5行目ごとに色をつけてくれ・・とか。

 

=AND(MOD(ROW()-1,5) = 0,ROW()>1)

f:id:arakan_no_boku:20190225121022j:plain

こうすると、こんな感じ。

f:id:arakan_no_boku:20190225121057j:plain

 

1列おきに色を付けてくれとか。

 

あと、横展開する表とかだと、1列おきに色をつけてくれ・・なんてこともあります。

=AND(MOD(COLUMN(),2) = 0,ROW()>1,COLUMN()>1)

f:id:arakan_no_boku:20190225125852j:plain

ROW()のかわりに列番号を返す「COLUMN()」を使っているのが違うくらいですかね。

ここでも1行目のヘダー行と、最初の1列のタイトル列は色をつけたくないので例外ではぶくように「ROW()>1」「COLUMN()>1」としています。

こうすると。

f:id:arakan_no_boku:20190225130109j:plain

こんなんができます。

 

ちなみに縦横の指定を組み合わせると

 

さっきの5行毎と1列おきを組み合わせると。

=AND(OR(MOD(COLUMN(),2) = 0,MOD(ROW()-1,5)=0),ROW()>1,COLUMN()>1)

 こんなんになります。

f:id:arakan_no_boku:20190225130600j:plain

まあ。

さすがに、これはお遊び以外では使わないと思うんですがね。

ではでは。

f:id:arakan_no_boku:20190201221826j:plain