エクセルでデータ管理や数値をチェックする際、
・IF(イフ)関数を使って、条件に応じてセルの背景色を自動で切り替えたい
・「納期を過ぎたら赤」「達成したら青」のように見た目をわかりやすくしたい
・関数を入力してもセルの色が変わらず、設定方法に悩んでいる
・「納期を過ぎたら赤」「達成したら青」のように見た目をわかりやすくしたい
・関数を入力してもセルの色が変わらず、設定方法に悩んでいる
と困っていませんか?
結論から言うと、IF関数(数式)だけでセルの色を直接変えることはできません。
関数はあくまで「値(文字や数値)」を返すためのものだからです。
しかし、エクセルの「条件付き書式」という機能にIF関数のロジック(またはIF関数そのもの)を組み合わせることで、条件に合わせてセルの色を自動変更する「型(標準化)」を作ることができます。
今回は、データの見える化を一気に進める
・【実践】IF関数×条件付き書式でセルの色を自動で変える手順
・【応用】数式を使って「別のセルの値」を条件に色を変える方法
・色がうまく変わらないときの解決ポイント
・VBAで条件付き書式をまとめて設定する方法
についてまとめます。
完成イメージ
IF関数で「要チェック」と表示されたセルと、売上が50未満の行全体に、自動で色が付いた状態がこちらです。
– B列(判定)…「要チェック」と表示されたセルが赤くなる
– 行全体(A〜C列)…売上が50未満の行がまとめて赤くなる
どちらも手で塗ったのではなく、条件付き書式が自動で色を付けています。
元の数値を書き換えれば、色も自動で追従します。
もくじ
なぜIF関数だけでは色が変わらないのか
エクセルの関数は、指定されたセルの中に「計算結果のデータ(値)」を出力する役割を持っています。
・条件付き書式:「もし、セルに”要チェック”と書かれていたら【セルを赤くする】」(見た目の変更)
このように、役割を分担させて組み合わせるのが、実務でエラーを起こさないための標準的な考え方です。
関数は「判定」、見た目は「条件付き書式」。ここを分けて考えるのがコツですね。
でもエクセルのルールとして『色を変えるのは条件付き書式の仕事』と割り切ってしまえば、驚くほど簡単に自動で色が変わるシートが作れるようになりますよ!
【実践】IF関数の結果に合わせてセルの色を自動で変える手順
ここでは、B列にIF関数で「要チェック」という文字を表示させ、そのセルの背景色を自動で赤に変える手順を解説します。
データを用意する
まずは、下の表をそのままコピーしてシートに貼り付けてください。
| 売上 | 判定 | 担当 |
|---|---|---|
| 120 | (数式) | 佐藤 |
| 45 | (数式) | 鈴木 |
| 80 | (数式) | 高橋 |
| 30 | (数式) | 田中 |
| 95 | (数式) | 伊藤 |
| 48 | (数式) | 渡辺 |
| 150 | (数式) | 佐藤 |
| 25 | (数式) | 鈴木 |
| 75 | (数式) | 高橋 |
| 40 | (数式) | 田中 |
ステップ 1:IF関数で条件を設定する
B2セルに次のIF関数を入力し、下方向へオートフィルでコピーします。
=IF(A2<50, "要チェック", "クリア")
A列の数値が50未満のときに「要チェック」、それ以外は「クリア」と表示されます。
| 入力した値 | IF関数の結果 |
|---|---|
| 120 | クリア |
| 45 | 要チェック |
| 80 | クリア |
| 30 | 要チェック |
ステップ 2:条件付き書式を設定する
2. 「ホーム」タブの「条件付き書式」→「セルの強調表示ルール」→「文字列」をクリックする
3. 左側の入力欄に、IF関数が返すキーワード「要チェック」と入力する
4. 右側のプルダウンから「濃い赤の文字、明るい赤の背景」を選び、OKをクリックする
これだけで、IF関数の判定と連動して「要チェック」のセルだけが赤くなります。
・「セルの強調表示ルール」は数式を書かずに設定できる一番簡単な方法です
・IF関数が返す文字とまったく同じ文字を指定するのがポイントです
【応用】数式を使って「別のセルの値」を条件に色を変える
「B列に文字を出すのではなく、A列の数値を見て行全体の色を変えたい」という一歩進んだテクニックです。
条件付き書式の中に、直接IFのロジック(数式)を入れます。
設定の手順
2. 「条件付き書式」→「新しいルール」をクリックする
3. 「数式を使用して、書式設定するセルを決定」を選択する
4. 数式欄に =$A2<50 と入力する
5. 「書式」ボタン→「塗りつぶし」タブで好きな背景色を選び、OKをクリックする
=$A2<50
すると、売上が50未満の行がまるごと赤くなります。
「$」を付ける意味
数式の先頭に $ を付けて列を固定するのがポイントです。
| 書き方 | 動き |
|---|---|
| =A2<50 | 行ごとに参照がずれるため、意図した色にならない |
| =$A2<50 | 列は固定・行だけ追従するので、行全体をまとめて色分けできる |
| =$A$2<50 | 行も固定されるため、1行しか色が変わらない |
$A2(列だけ固定)が、行全体を色分けするときの「型」です。
引き継ぎや資料作成の視認性が一気に上がりますね。
ルールが複数あるときは優先順位に注意
ルールを2つ以上設定すると、優先順位の数字が小さいルールが優先されます。
実際に設定したルールの一覧がこちらです。
| 優先順位 | 適用先 | ルール(数式) | 書式 |
|---|---|---|---|
| 1 | A2:C11 | =$A2<50 | 明るい赤の背景/濃い赤の文字 |
| 2 | A2:C11 | =$A2>=100 | 水色の背景/濃い青の文字 |
| 3 | B2:B11 | セルの値 = “要チェック” | 明るい赤の背景 |
意図しない色になったときは、「ホーム」→「条件付き書式」→「ルールの管理」で順番を入れ替えて調整します。
色がうまく変わらないときの解決ポイント
設定したのにセルの色が変わらない場合は、次の2つを確認してください。
① IF関数の「文字」と条件付き書式の「文字」が一致していない
IF関数側が「要チェック(半角カナ)」、条件付き書式が「要チェック(全角)」になっていると、1文字でも違うとエクセルは別物と判断します。
実際に半角カナで設定すると、このように色が付きません。
見た目は似ていても、半角と全角は別の文字です。
IF関数が返す文字をコピーして、条件付き書式の入力欄に貼り付けるのが確実ですね。
② 条件付き書式のルールの優先順位が乱れている
複数の色設定を重ねている場合、上のルールが優先されます。
意図しない色になっている場合は、「ルールの管理」画面で順番を入れ替えると解決します。
色が変わらないときのチェックリスト
| 症状 | 原因 | 対処 |
|---|---|---|
| 色がまったく付かない | ルールの文字とIF関数の文字が違う | 半角・全角とスペースを確認し、コピペで合わせる |
| 一部のセルだけ色が付かない | 適用先の範囲がずれている | 「ルールの管理」で適用先を確認する |
| 意図しない色になる | 複数ルールの優先順位 | 「ルールの管理」で順番を入れ替える |
| 行全体に色が付かない | 数式に $ が付いていない | =$A2<50 のように列を固定する |
| 数値を変えても色が変わらない | 数値が文字列として入力されている | セルを数値に変換する(余分な空白や引用符を消す) |
| コピーしたら色が崩れた | 書式のコピーでルールが二重になった | 「ルールの管理」で重複ルールを削除する |
| 印刷すると色が出ない | モノクロ印刷の設定 | ページ設定で白黒印刷のチェックを外す |
エク短流:VBAで条件付き書式をまとめて設定する
同じルールを何十枚ものシートに設定するのは大変です。
そんなときは、VBAでまとめて設定してしまいましょう。
Sub 条件付き書式をまとめて設定する()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
' 古いルールを消してから設定し直す(重複を防ぐ)
ws.Range("A2:C11").FormatConditions.Delete()
' ① 行全体を数式で色分け(売上が50未満=赤)
With ws.Range("A2:C11").FormatConditions.Add( _
Type:=xlExpression, Formula1:="=$A2<50")
.Interior.Color = RGB(255, 199, 206)
.Font.Color = RGB(156, 0, 6)
End With
' ② 達成(100以上)は青で色分け
With ws.Range("A2:C11").FormatConditions.Add( _
Type:=xlExpression, Formula1:="=$A2>=100")
.Interior.Color = RGB(204, 236, 255)
.Font.Color = RGB(0, 51, 102)
End With
Next ws
MsgBox "全シートに条件付き書式を設定しました"
End Sub
| 命令 | 役割 |
|---|---|
| FormatConditions.Delete | 既存のルールを消す(重複防止のため最初に入れる) |
| FormatConditions.Add | 新しいルールを追加する |
| Type:=xlExpression | 数式で判定するルール(「数式を使用して…」と同じ) |
| Type:=xlTextString | 文字列で判定するルール(「文字列」と同じ) |
| Interior.Color | 背景色。RGB(赤, 緑, 青) で指定する |
設定したルールは、手で設定したものとまったく同じように動きます(実機で確認済みです)。
シートが増えても一瞬で統一できるのでカンタンですね。
さいごに
今回は、
・【実践】IF関数×条件付き書式でセルの色を自動で変える手順
・【応用】数式を使って「別のセルの値」を条件に色を変える方法
・色がうまく変わらないときの解決ポイント
・VBAで条件付き書式をまとめて設定する方法
についてまとめました。
2. 「IF関数で文字を出す」→「その文字に条件付き書式で色を付ける」が王道の型
3. 「数式を使用して書式設定」なら、別のセルの値を条件にできる
4. =$A2<50 のように列を固定($)すると行全体を色分けできる
5. 色が変わらないときは、半角・全角のズレと優先順位を疑う
エクセルの「関数」と「条件付き書式」の組み合わせは、社内のタスク管理、売上の異常値検知、スケジュール管理など、あらゆる業務を効率化する武器になります。
まずは今回のサンプル表で簡単なIF関数を入力し、条件付き書式を組み合わせる操作から、ぜひ試してみてください。
最後までお読みいただきありがとうございました。














コメントを残す