「もうちょっと」は一日一回まで

浅い感想とか愚痴とか垂れ流してる

エクセルのしましまにするヤツとちょっとした応用

日記と愚痴もカネて、ちょっと毛色の違う日記。

ちょっぴりVBAが使えることがバレたら、なんか最近お仕事でよく使うようになったでござる。中小だから、大きなお金かけてシステム導入とか踏み切れないもんね。導入しても利用する人のほとんどがワタクシの親と同じぐらいの年でガラケーユーザーが多いしね(諦めた顔)

 そういうわけで、エクセルをちょっと見やすくするあのしましま。

f:id:naruka310:20180116211336j:plain

こういうの。出し方としては[条件付き書式]→[新しいルール] →[数式を使用して、書式設定するセルを決定] をして、以下の数式を入力すれば出る。

=MOD(ROW(),2)=0

「ROW」を「COLUMN」に すれば列をしましまに出来るので、大きな表を扱うときとか扱いやすくなって便利。

 

で、ここからちょっと応用してみる。

しましまにするために使っている関数「MOD」。これは「割り算のあまり」を出す関数なのである。試しに「=MOD(11,3)」とか適当なセルに入れると「2」が返ってくるから。そんな関数を利用して、先の「MOD(ROW(),2)=0」「2で割るとあまりが0になる行数」、つまり「2n」の行を指定するのだ。

てことで、3行ごとのしましまにしたい時はこうする。

 =MOD(ROW(),3)=0

f:id:naruka310:20180116211342j:plain

 3n行目にしまが入るわけである。

使い勝手とか考えると、1、4、7行目にしまが入っていたりするほうが便利な時もある。下のみたいなの。

f:id:naruka310:20180116211349j:plain

この場合はこう入力。

 =MOD(ROW(),3)=1

「3で割るとあまりが1になる行数」を指定。1,4,7...てか「3n+1」行目ごとに塗りつぶしたりできるのでこれまたちょっと便利。最初のしましまも塗りつぶす行と塗りつぶさない行を反転させることが出来る。

そんな、MODの構造が理解できたら、こんなのもう一つやってみる。

f:id:naruka310:20180116213723j:plain

今度は「5n+1」行目と「5n+2」行目を塗りつぶすパターン。

=(MOD(ROW(),5)=1)+(MOD(ROW(),5)=2)

もうちょっとすっきりとした書き方無いもんかとは思うけども、仕事でちょこちょこと使って、規則的に罫線とか塗りつぶしして見やすくする程度なのでこれぐらいわかれば十分である。

もうちょっと良い環境で他にも関数ある程度理解できる人いたら、もっと便利なのとか考えたいとは思うけど、メンテとか考えたらできるだけシンプルにやっていきたい。