IF関数で「特定の文字列を含む」を条件にする方法|COUNTIF・SEARCHとの合わせ技

IF関数で「特定の文字列を含む」を条件にする方法|COUNTIF・SEARCHとの合わせ技
結論(先に答え)

IF関数は部分一致を直接書けません(=IF(A2="*営業*",…) はNG)。=IF(COUNTIF(A2,"*営業*"),"○","×") または =IF(ISNUMBER(SEARCH("営業",A2)),"○","×") を使います。

「セルに『営業』という文字が含まれていたら○を付けたい」——このとき =IF(A2="*営業*","○","×") と書いても正しく判定されません。IF関数の比較(=)はワイルドカード(*)に対応していないためです。この記事では、部分一致を判定できる2つの定番パターンを解説します。

目次

サンプルデータ

練習用Excelファイル(無料ダウンロード)
この記事の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
AB
1部署名判定
2第一営業部
3総務部
4営業企画課
5経理部
IF関数とCOUNTIF関数で特定の文字列を含むかどうかを判定する図解

方法1:IF+COUNTIF(ワイルドカード)

手順:B2 に IF と COUNTIF の式を入れて、B5 までコピー

部署名(A列)に「営業」が含まれていたら ○、含まれていなければ × を付けます。B2 に次の式を入力して Enter キーを押し❶、B5 までコピーします❷。

B2 に入れる式
=IF(COUNTIF(A2,"*営業*"),"○","×")
A2 調べるセル(部署名)COUNTIF(A2,"*営業*") 論理式(営業を含むか)"○" 真の場合(含むとき)"×" 偽の場合(含まないとき)
ひとことでA2に「営業」が含まれていれば ○、なければ × を表示する
式を分けて読むと(色は画像の枠と同じ)
調べるセルA2
どこを調べる?
→ 部署名のセル(1 行ずつ)
論理式COUNTIF(A2,"*営業*")
何を調べる?
→ 「営業」を含むか(1 か 0)
真の場合"○"
含むときは?
→ ○ と表示
偽の場合"×"
含まないときは?
→ × と表示
自分の表で使うときは
青に「調べるセル」、* と * のあいだに「探す言葉」、緑と灰色に「表示したい文字」を入れます。例:住所(C2)に「東京」を含めば「東京」、なければ空白=IF(COUNTIF(C2,"*東京*"),"東京","")
  • * は「前後に何文字あってもよい」という意味です。* を外すと「営業」だけのセルしか ○ になりません。
エクセルでIFとCOUNTIFを組み合わせて営業を含むかを判定する式と、条件・調べるセル・表示を色分けした画面
エクセルでIFとCOUNTIFを組み合わせて営業を含むかを判定する式と、条件・調べるセル・表示を色分けした画面

確認:「営業」を含む 2 行だけ ○ になった

エクセルでIFとCOUNTIFの式をB5までコピーし、営業を含む第一営業部と営業企画課だけ○になったことを色で示した画面
エクセルでIFとCOUNTIFの式をB5までコピーし、営業を含む第一営業部と営業企画課だけ○になったことを色で示した画面

B2 から B5 まで、「営業」を含む行だけ ○ になりました❷。式は、1 行ずつ次の順に判定しています。

  1. COUNTIFで、A列のセルに「営業」がいくつあるかを数える(* は「前後に何文字あってもよい」という意味)
    ⇒ 第一営業部・営業企画課は 1、総務部・経理部は 0
  2. IF は 1 を「はい」、0 を「いいえ」とみなして表示を決める
    ⇒ 1 なら ○、0 なら ×
ポイント「営業で始まる」なら "営業*"、「営業で終わる」なら "*営業" と、ワイルドカードの位置で前方一致・後方一致も表現できます。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

C2に入力(C5までコピー):IF+ISNUMBER+SEARCHで、含むかを判定する
数式=IF(ISNUMBER(SEARCH("営業",A2)),"○","×")
ひとことでSEARCHで「営業」を探し、見つかったか(数値が返ったか)で判定する
"営業"
探す文字です
A2
探される側のセルです
ISNUMBER(…)
SEARCHが位置の数値を返したか(=見つかったか)を、TRUE/FALSEにします。見つからないと、SEARCHがエラーを返すので、FALSEになります
補足大文字・小文字を区別したいときは、SEARCHの代わりにFINDを使います。
ポイントSEARCH関数は「営業」が見つかればその位置(数値)を、見つからなければエラーを返します。ISNUMBERで「数値が返ったか=見つかったか」を判定してIFに渡す仕組みです。
ポイント大文字・小文字を区別したい場合は、SEARCHの代わりにFIND関数を使います(例: “Excel” と “excel” を区別)。
練習用Excelファイル(無料ダウンロード)
判定練習の練習ファイルで、含むかどうかを試せます部署名を書き換えて、○×の判定が変わるのを確認できます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

応用:複数キーワードのOR条件

ポイント「営業または企画を含む」の判定は、COUNTIFに配列定数を渡してSUMで合計します。
D2に入力(D5までコピー):複数のキーワードのOR判定
数式=IF(SUM(COUNTIF(A2,{"*営業*","*企画*"})),"○","×")
ひとことで「営業」か「企画」の、どちらかを含めば○にする
{"*営業*","*企画*"}
2つの候補を、配列定数でまとめて渡します
SUM(…)
候補ごとの個数を合計します。1以上なら、どちらかを含んでいます
補足両方を含むと合計が2になりますが、IFでは、1以上はすべてTRUEとして扱われます。

応用:「含む行」をまとめて抽出したい場合

1行ずつ○×を付けるのではなく、含む行のデータ自体を抜き出したい場合はFILTER関数の出番です。

F2に入力:「営業」を含む行だけを取り出す
数式=FILTER(A2:A5,ISNUMBER(SEARCH("営業",A2:A5)),"該当なし")
ひとことで1行ずつ○×を付けずに、含む行そのものを取り出す
A2:A5
取り出す範囲です
ISNUMBER(SEARCH("営業",A2:A5))
「営業」を含む行が TRUE になります
"該当なし"
含む行が0件のときの表示です
補足結果は F2 から下へ広がります(スピル)。
練習用Excelファイル(無料ダウンロード)
B2に式を入れて、B5までコピーすると、第一営業部と営業企画課だけが○になります。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

まとめ

やりたいこと数式
「営業」を含むか判定=IF(COUNTIF(A2,”*営業*”),”○”,”×”)
含むか判定(別解)=IF(ISNUMBER(SEARCH(“営業”,A2)),”○”,”×”)
大文字小文字を区別して判定=IF(ISNUMBER(FIND(“Excel”,A2)),”○”,”×”)
複数キーワードのOR判定=IF(SUM(COUNTIF(A2,{“*営業*”,”*企画*”})),”○”,”×”)
含む行をまとめて抽出=FILTER(範囲, ISNUMBER(SEARCH(“文字”, 範囲)))

▶ こんな場合はこちら:特定の文字を含む行をまとめて抽出する/文字列を比較する方法(EXACT・IF)

基本から確認したいときは、エクセルのIF関数の使い方もあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次