IF関数が使えるようになった方から、よくいただく質問があります。
IF関数であいまい検索はできないのでしょうか?
IF関数であいまいな条件指定はできないのでしょうか?
この疑問を感じたことがない方にはわかりにくい質問だと思いますが、IF関数の第1引数・論理式に「*」(アスタリスク)などのワイルドカードを利用した指定はできないのか?という質問です。
例えばA列に住所が入力されているときに、「中野区」という文字列があれば「○」を、そうでない場合に「−」をB列に表示させたいとします。
IF関数を使って「=IF(A1="*中野区*","○","−")」とB1セルに入力して下に向かってオートフィルすれば、住所に「中野区」を含んでいれば「○」、そうでない住所には「−」が表示されそうな気がします。けれどもこれではダメなのです。
「=IF(A1="*中野区*","○","−")」では、A1セルが「*中野区*」という文字列であるときにのみ「○」と表示されるのです。つまりこの指定では「*」はワイルドカードではなく通常の文字列として扱われているわけです。それなら「=IF(A1="*" & "中野区" & "*","○","−")」という数式を試す方がいらっしゃいますがこれも同じことです。COUNTIF関数は、第1引数で指定された範囲の中から、第2引数で指定した条件に合致するセルの個数を数えてくれます。
「COUNTIF(A1,"*中野区*")」とすれば、第1引数にセルを一つしか指定していませんから、「中野区」という文字列が含まれていれば「1」、そうでなければ「0」という数値が返されてきます。
Excelでは「1」は「TRUE」、「0」は「FALSE」として扱われますから、上記の数式で「○」「−」が表示されることになります。
上記の数式がピンと来ない場合は
「=IF(COUNTIF(A1,"*中野区*")>0,"○","−")」
としてください。
IF関数に慣れていないうちは、こちらの方がわかりやすいでしょう。
- Newer:突然カタカナが表示されるように
- Older:日付データ、Accessの場合
Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » IF関数で「○○を含む」の指定−COUNTIF関数