参照しているセルの内容が数値であれば、IF関数などの論理式で、例えば「A1>=100」とか「A1<>100」などのように論理演算子を用いて条件判断することができます。
でも、ときとしてセルの内容が文字列(テキスト)であって、例えば A1セルのテキストが「“東京”から始まる」とか「“都”を含む」とかの条件判断をしたいこともあります。
そんなときは“ワイルドカード”を使って条件式を作ればよさそうです。
ところが「Excel ワイルドカードが使える関数」記事でご紹介したように、“ワイルドカード”が使える関数には、SUMIF、COUNTIF、SEARCH、MATCH、HLOOKUP、VLOOKUP、SUMIFS、COUNTIFS、AVERAGEIF、AVERAGEIFS、XLOOKUP、XMATCHがあげられます。
ん?「IF」関数がありませんね。
となると、「=IF(A1="東京*",…」とか「=IF(A1="*都*",…」ということはできません。
それならば、上記ワイルドカードが使える関数を使って数式を作ってしまいましょう。
今回の目的に使えそうな関数は「COUNTIF」です。
COUNTIF関数については、「Excel カウントする関数」記事をはじめ、これまでの記事中に何度も登場した“定番”関数です。
試しに、下図のような名前の表データについて COUNTIF関数の動作を確認しておきます。
この名前の中に「山」という文字を含むセルを見つけるため、B2セルに「=COUNTIF(A2,"*山*")」と入力し、B11セルまでコピーまたはオートフィルしたものです。
確かに、「山」を含むセルに対応して「1」という値が返されています。
この数式は参照セルの中の「山」という文字を数えているのではなく、単に「山」が含まれているかどうかを論理判断しています。
そのため、例えば A11セル「金山 怜奈」を「金山 遊山」と変更しても、やはり返り値は「1」です。
つまり、これの返り値が「1」であれば“TRUE”、「0」であれば“FALSE”として扱えるということです。
それでは、これを IF関数の第1引数「条件」に適用して、「山」を含むセルなら「〇」と表示させてみます。
B2セルに「=IF(COUNTIF(A2,"*山*"),"〇","")」と入力し、B11セルまでコピーまたはオートフィルします。
すると、下図のように該当するセルに「〇」が表示されました。
今回の例は、とても単純なものでしたが、実務で求められる処理ではもう少し複雑になるかもしれません。
でも、関数を組み合わせて、求める処理を実現する‥‥ Excelの関数の使い方を勉強する上で、このようにどの関数とどの関数を組み合わせるかというテクニックを覚えていくと上達が早いと感じています。