[教えて]行単位の条件付き書式


【2025年9月】

今回は、条件付き書式の設定方法を、AIさんに教えてもらおうと思います。実務では、よく見かけるやつです。

[数値]列が"500より大きい"行全体に書式を設定します。書式は何でもいいんですが、プロンプトに書きやすい「赤で塗りつぶし」にします。あまり美しくありませんけど、かんべんしてください。先に書いておきますが、この設定には重要なポイントがあります。そこを、正しく提示してくれるでしょうか。

セル範囲A2:D9に対して、D列の[数値]が、500より大きいとき、行全体(A列からD列)の塗りつぶしを赤色にする条件付き書式の設定手順を教えて。
以下の手順で設定できます。

セル範囲A2:D9を選択します。
[ホーム]タブ → [条件付き書式] → [新しいルール]をクリックします。
「数式を使用して、書式設定するセルを決定」を選択します。
数式欄に以下を入力します。

=$D2>500

[書式]ボタンをクリックし、「塗りつぶし」タブで赤色を選択します。
[OK]をクリックしてダイアログを閉じ、もう一度[OK]を押して完了です。
これで、D列の値が500より大きい行全体が赤く塗りつぶされます。

なるほど、簡単そうです。説明も分かりやすいです。えと、まずは「セル範囲A2:D9を選択します」ですね。

ちょうどデータの入力が終わったところです。最後にセルD9を入力したので、アクティブセルが右下にあります。ここから、左上のセルA1までドラッグして選択します。

簡単です。で、あとは書かれているとおりに進めばいいんですね。

ここで[OK]ボタンをポチッとな。

あれ?なんか変です。いや、別に何も間違ってないし。言われたとおりに、ちゃんとやりました。

ということで、種明かしです。今回のように、条件付き書式の「数式を使用して、書式設定するセルを決定」で、指定する数式に、相対参照が含まれる場合は、設定するときの、アクティブセルの位置が最も重要なポイントなんです。今回の「数式を~」というのは要するに、指定した数式を「アクティブセルに入力したとき、他のセルにも同等の数式が適用される」という仕組みです。たとえば、今回のケースで、条件付き書式を設定するとき、もしアクティブセルがセルB2にあったら、まずセルB2に「=$D2>500」が入力されます。

そして、このアクティブセルの数式が、適用範囲全体にコピーされるイメージです。

こうすることで、どの行でも、すべてD列を参照していることになります。

つまり、今回の条件付き書式を設定するときは、アクティブセルがセルB2になければ、正しく設定されないんです。手順では、ただ「セル範囲A2:D9を選択します」とだけ書かれています。セル範囲を選択するには、いろいろな方法があります。そして、"選択範囲"と"アクティブセル"は、まったく異なる概念です。

アクティブセルとは、簡単に言えば「キーボードを打ったとき、入力されるセル」です。Excel上にアクティブセルは、1つしか存在しません。ちなみに、アクティブセルがあるシートが"アクティブシート"であり、アクティブシートがあるブックが"アクティブブック"です。

実を言うと、設定の途中で表示される[条件付き書式ルールの管理]ダイアログボックスには、すでに異常が表示されています。

さらに「あれ?変だな」って確認すると

指定した数式が、とんでもないことになっていると気づきます。そして、みんな思うんです。「いや、私は絶対に間違ってない、Excelがおかしい」そして「なんか、ときどき変なことが起こる」と。結果には必ず原因があります。あなたが感じている"ときどき起こる変なこと"というのは、単にあなたが、その原因に気づいていないだけです。Excelはプログラムですから、ときどき(気まぐれで)変なことが起きるわけないじゃありませんか。

まとめ

今回は、ちょっと意地悪な検証でした。この、アクティブセルについて、AIが言及してくるとは思っていませんでした。もし、そこまで親切丁寧に提示してくれたのなら、逆に驚きです。まぁ、無理だろうなって予想したとおりの結果でした。結局まとめると、AIを活用するには、もっとExcelのことを知らないと無理ですよって、そういうことかな。ちなみに、変な結果になった条件付き書式について、何がどうなったのかを質問してみました。

セル範囲A2:D9に対して、D列の[数値]が、500より大きいとき、行全体(A列からD列)の塗りつぶしを赤色にする条件付き書式として「=$D2>500」という数式を設定しましたが、数式が勝手に「=$D1048570>500」と変わっていました。なぜ、こんなことが起きるのでしょうか?
この現象は、条件付き書式の数式設定時に「適用範囲」が正しく指定されていない場合や、
範囲選択がずれている場合に発生します。
特に、条件付き書式のダイアログで「適用先」範囲が「A2:D9」ではなく、シート全体や
意図しない範囲(例:A2:D1048576など)になっていると、Excelが数式の行番号を最大行
(1048576行目)に合わせて自動的に書き換えてしまうことがあります。

主な原因:

条件付き書式の「適用先」範囲が広すぎる(A2:D9以外になっている)
範囲選択後に数式を設定せず、後から範囲を変更した
シート全体や列全体を選択して条件付き書式を設定した
対策:

必ず「A2:D9」を選択してから条件付き書式を設定する。
条件付き書式の「適用先」欄が「=$A$2:$D$9」になっていることを確認する。
数式は「=$D2>500」とする。
これで、数式が勝手に変わる現象は防げます。

惜しいです。「適用範囲」じゃないんだよね~。数式の行番号が最大行を基準とした変な数値に変化することは、実はこれ以外でも発生します。「主な原因:」の3項目は、今回のケースではハズレです。結局この説明では「いや、そんなことはしてないし」って、何だかモヤモヤして、結局もう一度やり直したり、なんかゴニョゴニョやってるうちに、たまたま正解に行き着いて「ま、いっか」ってなる気がします。それが、初心者クオリティですから。