【Excel】条件付き書式で行ごとに色を付ける — 行全体を一括で塗りつぶす方法と$の使い方

Excel
この記事は約8分で読めます。

「状況」の列が「済」になっている行だけ、行全体をグレーにしたい。進捗表や管理表を作っていると、必ずと言っていいほど出てくる要望です。

条件付き書式そのものは使えるのに、いざやってみると「選んだセルだけ色が変わる」「なぜか1行目だけ色が付く」「全部の行が同じ色になる」といった結果になって止まってしまう方が多い機能でもあります。

原因はほぼ1か所、数式に付ける $ の位置です。ここを押さえてしまえば、行ごとの塗り分けも列ごとの塗り分けも同じ考え方で作れるようになります。

この記事で分かること

  • 1つのセルの値を見て、行全体に色を付ける方法
  • $C$3$C3C$3 で結果がどう変わるのか
  • 思ったところに色が付かないときに疑う4か所

どんな場面で使うか

1つの列の状態で行全体の見え方を変えたい、という場面はどれも同じ作り方でカバーできます。

  • タスク管理表で、状況が「済」の行をグレーにして目立たなくする
  • 案件一覧で、期限を過ぎた行を赤くする
  • 在庫表で、在庫数が一定を下回った行を黄色にする
  • 名簿で、退職・解約などのフラグが立っている行を薄い色にする

いずれも「判定に使う列は1つ、色を変えたい範囲は行全体」という構造です。

基本説明:なぜ「行ごと」に色が付かないのか

まずは操作する表を確認します。ここでは C列に「状況」が入っていて、データが3行目から始まる表を例にします。

条件付き書式を設定する元の表

やりたいのは「C列が『済』になっている行は、その行全体をグレーで塗りつぶす」ことです。

条件付き書式のルールに数式を書くとき、Excelは次のように動きます。

  1. 選択した範囲の左上のセルを基準にして数式を読む
  2. その数式を、選択範囲のすべてのセルにコピーしたつもりで1つずつ判定する
  3. 結果が TRUE になったセルにだけ書式を適用する

つまり数式は「左上のセル用に書いた1本」を、Excelが右へ下へコピーしながら使い回しています。この「コピー」の挙動を決めているのが $ です。

$ の位置で結果がどう変わるか

選択範囲を A3:C12、基準となる左上のセルを A3 として書いた場合の違いです。

数式の書き方 何が起きるか 用途
=$C$3="済" 列も行も固定される。C3の値だけを見て、範囲全体が一斉に塗られるか、まったく塗られないかのどちらかになる 今回は使わない
=$C3="済" 列だけ固定。どの列のセルを判定するときも必ずC列を見るが、行は各セルの行に合わせて動く 行ごとに塗り分けたいとき(今回)
=C$3="済" 行だけ固定。どの行のセルも必ず3行目を見るが、列は各セルの列に合わせて動く 列ごとに塗り分けたいとき
=C3="済" 何も固定されない。判定するセルと同じ位置関係のセルを見に行くため、意図しない列を参照する 使わない

行ごとに色を変えたいということは、「見る列は固定したい・見る行は動かしたい」ということです。だから列を表す C の側にだけ $ を付けて =$C3 にします。

$ は「動かさない」という意味の記号だと覚えておくと、迷ったときに判断できます。

手順

Step 1: 色を付けたい範囲を選ぶ

行全体を塗りたいので、行全体ぶんの列を含めて選択します。ここでは A3:C12 を選択したものとして進めます。

このとき、タイトル行(見出し行)は選択に含めないでください。 含めるとタイトル行も判定対象になり、意図しない色が付きます。

Step 2: 「新しいルール」を開く

範囲を選択したまま、「ホーム」タブ →「条件付き書式」→「新しいルール」を選びます。

条件付き書式メニューから新しいルールを選ぶ

新しいルールの選択画面

Step 3: 「数式を使用して、書式設定するセルを決定」を選ぶ

ルールの種類から「数式を使用して、書式設定するセルを決定」を選びます。

入力欄にカーソルを置いた状態で、判定に使いたい列の最初のセル(今回はC列の最初のデータである C3)をクリックします。

ルールの種類で数式を選び、C3をクリックした状態

クリックすると =$C$3 のように入力されます。この時点ではまだ行ごとに動きません。

Step 4: $ の位置を直す

=$C$3C の直後にカーソルを置き、F4 キーを数回押します。押すたびに $C$3C$3$C3C3 と切り替わるので、$C3 の状態で止めます。

$C3に修正した状態

キーボードで直接 $ を消しても構いません。大事なのは列(C)にだけ $ が付いている状態にすることです。

Step 5: 条件を書く

=$C3 の後ろに、判定したい条件を続けます。

=$C3="済"

文字列と比べるときは " で囲みます。数値なら =$D3<10、日付なら =$E3<TODAY() のように書けます。

条件の数式を入力した状態

Step 6: 書式を決める

右下の「書式」ボタンを押して、条件に合ったときの見た目を決めます。今回は「塗りつぶし」タブからグレーを選びました。

書式設定でグレーの塗りつぶしを選ぶ

行を目立たなくしたい場合は、塗りつぶしを薄いグレーにして文字色もグレーにすると、他の行との差がはっきりします。

Step 7: 完成

「OK」で閉じると、条件に合った行だけが行全体で塗られます。

条件付き書式が行全体に適用された完成イメージ

C列の値を「済」に変えると、その場で行の色が変わります。条件が1つであれば、ここまでで完成です。

列全体に色を付けたい場合

考え方は同じで、固定する側を入れ替えるだけです。

たとえば3行目の値を見て列全体の色を変えたいなら、数式は次のようになります。

=C$3="済"

行を表す 3 の側に $ を付けることで、「見る行は3行目に固定、見る列は各セルに合わせて動く」という意味になります。

やりたいこと 数式の形 固定する側
行ごとに塗り分ける =$C3="済" 列(C)を固定
列ごとに塗り分ける =C$3="済" 行(3)を固定

よくあるエラー

色が付かない・付き方がおかしいときは、次の4か所を上から順に確認すると原因が見つかります。

選んだセルだけ色が付く/範囲全体が一斉に塗られる

$ が両方に付いて =$C$3 のままになっている可能性が高いです。この形は「C3という1つのセルだけを見る」という意味なので、C3が条件を満たせば範囲全部が塗られ、満たさなければ1つも塗られません。

「条件付き書式」→「ルールの管理」からルールを選んで「ルールの編集」を開き、=$C3 になっているか確認してください。

タイトル行まで色が付く

Step 1で範囲を選ぶときに、見出し行を含めてしまっています。ルールの管理画面で「適用先」を確認し、データが始まる行(今回は3行目)からの範囲に直します。

意図しない列を見に行っている

$ を付けずに =C3 としていると、判定するセルの位置に合わせて参照列まで動きます。 選択範囲の左上がA3のとき、B列のセルはD列を、C列のセルはE列を見に行く、という具合です。空欄の列を見ているので条件に一致せず、「何も起きない」という結果になります。

後から追加した行に色が付かない

条件付き書式のルールは、設定したときの範囲(適用先)にだけ効きます。表の下に行を足しても、その行は範囲外のままです。

毎月行が増えていく表なら、あらかじめ表をテーブル(Ctrl + T)に変換しておくと、行を追加したときに書式も自動で広がります。すでにルールを作った後なら、ルールの管理画面で「適用先」の範囲を広げても構いません。

「済」と入力しているのに反応しない

セルの値に余分な空白が入っていないか確認してください。他システムからコピーした値には、末尾に半角スペースが残っていることがあります。この場合は =TRIM($C3)="済" のように書くか、元データ側の空白を取り除きます。

全角と半角の違い、似た文字(「済」と「済み」)の混在も同じ理由でよくある原因です。

まとめ

  • 条件付き書式の数式は、選択範囲の左上のセルを基準に、全セルへコピーされるものとして解釈される
  • 行ごとに塗り分けたいときは列だけを固定して =$C3="済" と書く
  • 列ごとに塗り分けたいときは行だけを固定して =C$3="済" と書く
  • $ は「動かさない」という意味。どちらを動かしたいかで付ける場所が決まる
  • 色が付かないときは「$の位置」「適用先の範囲」「値の余分な空白」の順に確認する

条件が1つならここまでで十分ですが、ドロップダウンで選んだ条件に合わせて色を追従させたい、複数の条件を組み合わせたい、といった場合は関数と組み合わせる方法もあります。

関連記事

タイトルとURLをコピーしました