Excel。セル内の文字の一部が含まれた行全体を塗りつぶしたい
<条件付き書式・FIND関数>
セル内の文字の一部が合致したら、そのセルを塗りつぶすというのは、条件付き書式を使うことで簡単に設定することができます。
次の表を使って確認してみましょう。
住所が横浜市のセルだけを塗りつぶすことにします。
ホームタブの「条件付き書式」にある「セルの強調表示ルール」の「文字列」をクリックします。
文字列ダイアログボックスが表示されますので、「横浜市」と入力して、書式を選択し、OKボタンをクリックすると、セル内に「横浜市」という文字が含まれている場合、セルが塗りつぶしされます。
しかしながら、この方法だと、セルは塗りつぶしすることができますが、そのデータ、つまり行全体を塗りつぶすことはできません。
次のように、住所のセル内に「横浜市」という文字が含まれていたら、その行全体を塗りつぶすにはどうしたらいいのでしょうか?
住所の一部に「横浜市」という文字が含まれているのか?いないのか?を判断する必要があるわけです。
では、どのようにしたら、判断することができるのでしょうか?
セル内の文字を見つけるには、『FIND関数』を使えば見つけることができます。
サンプルとして確認してみましょう。
D2に次の数式を設定してみました。
=FIND("横浜市",C2)
その数式をオートフィルでコピーすると、横浜市という文字が含まれている場合は、5という値を返します。
これは、セルの左から5文字目からあるよ。
という意味で、逆に、横浜市という文字が含まれていない場合は、見つからないので、「#VALUE!」というエラーを返してきます。
この数式と、条件付き書式を組み合わせて使うことで、対応することができそうです。
D列は、サンプルなので削除しておきます。
A2:D11を範囲選択します。
ホームタブの「条件付き書式」にある「新しいルール」をクリックします。
新しいルールダイアログボックスが表示されます。
ルールの種類を「数式を使用して、設定するセルを決定」に合わせます。
ルールを設定しますので、次の数式をボックス内に入力します。
=find("横浜市",$C2)>0
先程と同じ、FIND関数をつかっています。
また、引数の対象を「$C2」と複合参照にしているのは、C列の値をA列もB列も参照させる必要がありますので、相対参照ではなく、複合参照にする必要があります。
この複合参照がポイントになるわけですが、簡単にいえば、条件付き書式で行全体を塗りつぶしたい場合は、列に「$」をつけた複合参照にすればいいと覚えておくといいかもしれませんね。
あとは、セルを塗りつぶす色を設定して、OKボタンをクリックします。
これで完成しました。
条件付き書式は数式をつかうことで、様々なシーンで使える可能性がありますので、試してみると面白いかもしれませんね。