📚
Google Sheetsで3行ごとに色を塗り分ける方法
tl;dr
A2から3行ごとに背景を塗り分けたい場合、条件付き書式のカスタム数式に以下を入力する。ただし、第2引数の開始位置の行番号を固定すること。
=LET(start, A$2, QUOTIENT(MOD(ROW()+6-ROW(start), 6),3))
関数の解説
[1]
LET関数LET関数は最後の引数を式、それ以外の引数を変数名と変数のペアとして式を評価する関数です。
=LET(変数名1, 変数1, 変数名2, 変数2, ..., 式)
[2]
QUOTIENT関数QUOTIENT関数は商を求める関数です。
=QUOTIENT(被除数, 除数)
[3]
MOD関数MOD関数は剰余を求める関数です。
=MOD(被除数, 除数)
[4]
ROW関数ROW関数はセルの行番号を返す関数です。引数のセルはオプションで、省略すると自身のセルの行番号を返します。
=ROW([セル参照])
3列ごとに色を塗り分ける方法
以上を踏まえて、3列ごとに色を塗り分ける方法を説明します。
簡単のために、A1セルから始まる場合を考えます。ここで、カスタムの数式内では、0はFALSE
と評価され、1はTRUE
と評価されることを利用しています。
セル | ROW() | MOD(ROW(), 6) | QUOTIENT(MOD(ROW(), 3)) |
---|---|---|---|
A1 | 1 | 1 | 0 |
A2 | 2 | 2 | 0 |
A3 | 3 | 3 | 1 |
A4 | 4 | 4 | 1 |
A5 | 5 | 5 | 1 |
A6 | 6 | 0 | 0 |
A7 | 7 | 1 | 0 |
3列ごとの繰り返しになっていますが、ずれているので補正します。A1からの場合は5を足すと良いです。
セル | ROW()+5 | MOD(ROW()+5, 6) | QUOTIENT(MOD(ROW()+5, 3)) |
---|---|---|---|
A1 | 6 | 0 | 0 |
A2 | 7 | 1 | 0 |
A3 | 8 | 2 | 0 |
A4 | 9 | 3 | 1 |
A5 | 10 | 4 | 1 |
A6 | 11 | 5 | 1 |
A7 | 12 | 0 | 0 |
これで3列ごとに色を塗り分けることができます。
ただし、このままではA1セルから始まる場合しか対応できません。
6-ROW(セル)
を足すことで、A1セル以外から始まる場合にも対応できることがわかります。
以上をLET関数を用いてまとめると、所望の関数が得られます。ここで注意が必要なのが、条件付き書式の中では、通常のセル参照は開始位置を表すことです。行番号や列番号に$
をつけない場合、自動的に行番号や列番号が更新されてしまいます。そのため、$
をつけて固定します。
=LET(start, A$1, QUOTIENT(MOD(ROW()+6-ROW(start), 6),3))
実際の例は、3行ごとに色を塗り分ける - Google スプレッドシートをご覧ください。
Discussion