【Excel2013】条件付き書式/特定の文字(文字列)を含むセルに色をつける【COUNTIF関数】
この記事は『【Excel2013】条件付き書式:ある条件の時にセルや行に色を付けたり文字色を変える【覚書】』の補足です。
前述の記事で条件付き書式の基本を理解していることを前提としています。
サンプル
まずはサンプルです。
上の表は野球の勝敗表で、D(横浜DeNAベイスターズ)が勝利なら○、敗けなら●と記入してあるので、それぞれ、○が記入されていればピンク、●が記入されていればブルーの背景色が自動的に着くよう条件付き書式が設定されています。○も●もない横浜戦の場合はグリーンの背景色になります。
このように、特定の文字列があれば書式を付けるという条件付き書式の場合、COUNTIF関数を使用します。
(以下、文体を変えます。)
COUNTIF関数
COUNTIF関数とは、指定した範囲に検索条件として指定した文字(文字列)を含むセルの数をカウントしてくれる関数で、基本的な記述方法は下記の通り。
COUNTIF(範囲,検索条件)
セルにCOUNTIF関数の計算結果を表示する場合、数式として最初に「=」(イコール)を記述してから「=COUNTIF(範囲,検索条件)」のように書く。
先に示した表ではC30、C31にCOUNTIF関数を使用して○(白星)と●(黒星)の数を数えているので、例としてC30に記述した数式を見ると、
と、
=COUNTIF($B$2:$G$28,"*○")
のように書かれている。
- 範囲: ここではB2~G28の範囲(下のセル=C31にもこの範囲をずらさずにコピーしたいので「$」を付けて「$B$2:$G$28」のように記述している。)
- 検索条件: 末尾に「○」があるものをカウントしたいので、ワイルドカード「*」(アスタリスク)を使用している。
ワイルドカード
ワイルドカード(wild card)とは元々トランプ用語で、他のカードの代用となるカードのこと、コンピューター用語としては、任意の文字に置換え可能な特殊文字で、「?」(疑問符) と「*」(アスタリスク ) をワイルドカード文字として使用できる。(他のアプリでも「?」と「*」を使用している場合が多い。)
「?」は任意の1文字、「*」は1文字以上の任意の文字列字を表すので、「*○」は前に何文字あっても末尾に「○」があれば、検索条件に合致したとして1とカウントされる。(「??○?」なら4文字の3番目に○があれば条件に合致する。)
これにより、C30の数式の結果は10となる。
条件付き書式の設定方法
既に前述の記事で設定方法詳細は説明済みなので、ここでは簡単に記す。
ここでは、上図のように3つの条件付き書式が設定してある。それぞれの条件は、
■ピンク
=COUNTIF(B2,"*○*")>0
■ブルー
=COUNTIF(B2,"*●*")>0
■グリーン
=COUNTIF(B2,"*D*")>0
検索条件が異なるだけで、セル(ここでは範囲ではなく、単独のセル=B2)を調べて、条件に合致したら=1がカウントされたら=「0以上なら」という判定方法を行っている。
ここでB2を指定しているのは、条件付き書式の各ルールの検索対象の“最初”=“左上”のセル=B2から見て自分自身(B2)だからで、このように指定すると、自動的に他のセルでは式の中の対象セルをずらしてくれる。(列や行を固定したい場合は、「$B2」、「B$2」のように「$」を付ける。(「$」については前記事で解説済み。)
これが感覚的に理解できない人が多いが、下記のように考えれば良い。
上の例では、B1~B5までの同じ列に条件付き書式を設定しているが、もしC列(C1~C5)も含めてB1~C5を範囲指定したとして、同じ数式を設定してしまうと、例えばC1のセルでは「=COUNTIF(A1,"*○*")>0」の「A1」の部分はC1の左隣、すなわちB1が参照され、「=COUNTIF(B1,"*○*")>0」と読み替えられてしまう。
これを避けるためには、「=COUNTIF($A1,"*○*")>0」と、A列を固定するよう記述する。
« 【Excel2013】条件付き書式/カレンダーや予定表など、土曜日、日曜日、祝日の行に背景色をつける方法 | トップページ | 【ドールハウス工作】 No.188 100均バスケットとパンのミニチュア »
« 【Excel2013】条件付き書式/カレンダーや予定表など、土曜日、日曜日、祝日の行に背景色をつける方法 | トップページ | 【ドールハウス工作】 No.188 100均バスケットとパンのミニチュア »
コメント