エクセルでIF関数を使ってセルの色を変える方法!条件付き書式との連携技

エクセルでIF関数を使ってセルの色を変える方法!条件付き書式との連携技
エクセルでデータ管理や数値をチェックする際、

・IF(イフ)関数を使って、条件に応じてセルの背景色を自動で切り替えたい
・「納期を過ぎたら赤」「達成したら青」のように見た目をわかりやすくしたい
・関数を入力してもセルの色が変わらず、設定方法に悩んでいる

と困っていませんか?

結論から言うと、IF関数(数式)だけでセルの色を直接変えることはできません。

関数はあくまで「値(文字や数値)」を返すためのものだからです。

しかし、エクセルの「条件付き書式」という機能にIF関数のロジック(またはIF関数そのもの)を組み合わせることで、条件に合わせてセルの色を自動変更する「型(標準化)」を作ることができます。

今回は、データの見える化を一気に進める

・【基本】なぜIF関数だけでは色が変わらないのか
・【実践】IF関数×条件付き書式でセルの色を自動で変える手順
・【応用】数式を使って「別のセルの値」を条件に色を変える方法
・色がうまく変わらないときの解決ポイント
・VBAで条件付き書式をまとめて設定する方法

についてまとめます。

完成イメージ

IF関数で「要チェック」と表示されたセルと、売上が50未満の行全体に、自動で色が付いた状態がこちらです。

IF関数と条件付き書式で色が付いた完成形

– B列(判定)…「要チェック」と表示されたセルが赤くなる
– 行全体(A〜C列)…売上が50未満の行がまとめて赤くなる

どちらも手で塗ったのではなく、条件付き書式が自動で色を付けています。

元の数値を書き換えれば、色も自動で追従します。

なぜIF関数だけでは色が変わらないのか

エクセルの関数は、指定されたセルの中に「計算結果のデータ(値)」を出力する役割を持っています。

間違ったイメージ
「もし、売上が100以上なら【セルを赤くする】」→ 関数単体では書式(色や罫線)を操作できません。
正しいイメージ(役割分担)
・IF関数:「もし、売上が100以上なら【”要チェック”という文字】を出す」(データの判定)
・条件付き書式:「もし、セルに”要チェック”と書かれていたら【セルを赤くする】」(見た目の変更)

このように、役割を分担させて組み合わせるのが、実務でエラーを起こさないための標準的な考え方です。

関数は「判定」、見た目は「条件付き書式」。ここを分けて考えるのがコツですね。

タカヒロ

タカヒロ
私も昔は『=IF(A1>100, 赤, 白)』のような数式が作れないか本気で悩んでいました。
でもエクセルのルールとして『色を変えるのは条件付き書式の仕事』と割り切ってしまえば、驚くほど簡単に自動で色が変わるシートが作れるようになりますよ!

【実践】IF関数の結果に合わせてセルの色を自動で変える手順

ここでは、B列にIF関数で「要チェック」という文字を表示させ、そのセルの背景色を自動で赤に変える手順を解説します。

データを用意する

まずは、下の表をそのままコピーしてシートに貼り付けてください。

売上 判定 担当
120 (数式) 佐藤
45 (数式) 鈴木
80 (数式) 高橋
30 (数式) 田中
95 (数式) 伊藤
48 (数式) 渡辺
150 (数式) 佐藤
25 (数式) 鈴木
75 (数式) 高橋
40 (数式) 田中
用意した売上チェック表

ステップ 1:IF関数で条件を設定する

B2セルに次のIF関数を入力し、下方向へオートフィルでコピーします。

=IF(A2<50, "要チェック", "クリア")

A列の数値が50未満のときに「要チェック」、それ以外は「クリア」と表示されます。

IF関数を入力した状態(数式バー)
入力した値 IF関数の結果
120 クリア
45 要チェック
80 クリア
30 要チェック

ステップ 2:条件付き書式を設定する

1. 色を変えたいB列のデータ範囲(B2:B11)を選択する
2. 「ホーム」タブの「条件付き書式」→「セルの強調表示ルール」→「文字列」をクリックする
3. 左側の入力欄に、IF関数が返すキーワード「要チェック」と入力する
4. 右側のプルダウンから「濃い赤の文字、明るい赤の背景」を選び、OKをクリックする

これだけで、IF関数の判定と連動して「要チェック」のセルだけが赤くなります。

文字列ルールで要チェックのセルが赤くなった状態
POINT
・色を変えるのは条件付き書式の役割です(IF関数は文字を出すだけ)
・「セルの強調表示ルール」は数式を書かずに設定できる一番簡単な方法です
・IF関数が返す文字とまったく同じ文字を指定するのがポイントです

【応用】数式を使って「別のセルの値」を条件に色を変える

「B列に文字を出すのではなく、A列の数値を見て行全体の色を変えたい」という一歩進んだテクニックです。

条件付き書式の中に、直接IFのロジック(数式)を入れます。

設定の手順

1. 色を変えたいデータ範囲(A2:C11)を選択する
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関数だけでは色が変わらないのか
・【実践】IF関数×条件付き書式でセルの色を自動で変える手順
・【応用】数式を使って「別のセルの値」を条件に色を変える方法
・色がうまく変わらないときの解決ポイント
・VBAで条件付き書式をまとめて設定する方法

についてまとめました。

1. IF関数は値を返すだけ。色を変えるのは条件付き書式の仕事
2. 「IF関数で文字を出す」→「その文字に条件付き書式で色を付ける」が王道の型
3. 「数式を使用して書式設定」なら、別のセルの値を条件にできる
4. =$A2<50 のように列を固定($)すると行全体を色分けできる
5. 色が変わらないときは、半角・全角のズレと優先順位を疑う

エクセルの「関数」と「条件付き書式」の組み合わせは、社内のタスク管理、売上の異常値検知、スケジュール管理など、あらゆる業務を効率化する武器になります。

まずは今回のサンプル表で簡単なIF関数を入力し、条件付き書式を組み合わせる操作から、ぜひ試してみてください。

最後までお読みいただきありがとうございました。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。






コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA ImageChange Image