【Excel】IF関数を使って部分一致の文字列について条件設定

IF関数を使って部分一致の文字列を検索して条件設定をする方法

今回はExcelで以下の例のように、役職の肩書がある人はマネージャーと書き出す方法を紹介します。

等級の列は、名前が「部長」もしくは「課長」と肩書で終わっている人のみ「マネージャー」と表示しています。

「部長」か「課長」なら「マネージャー」ということで、IF関数を使用して以下の様な式をイメージしてしまう方がいるかもしれません。

少なくとも、当初の筆者はそうでした。

尚、以下の式では 「部長」と「課長」 以外はブランクにする設定にしています。

=IF(B3=”*課長”,”マネージャー”,IF(B3=”*部長”,”マネージャー”,””))

つまり上の式は「もしセルB3が”課長”という文字で終わるなら、”マネージャー”と表示し、もしセルB3が “部長” という文字で終わっても、”マネージャー”と表示し、何れでもない場合は空欄にするという式にしようとしています。

しかし、実際にやってみようとする以下のように関数を入力してもできないことが分かります。

IF関数は以下の記事で解説していますので参考にしてください。

【Excel】IF関数を使って複数条件設定/AND・OR・NOT関数との組合せ

IF関数だけではワイルドカードが使えない

ここで重要な知識として、IF関数だけではワイルドカードが使えないという点です。

ワイルドカード(「*(アスタリスク)」や「?(疑問符)」)を使って条件を指定すると、部分的に等しい文字列を検索することができます。

ワイルドカード意味検索文字列検索結果
?任意の1字?田「田」の前に任意の1文字がつく
例)
柳田
山田
*任意の文字列
(0文字以上)
*原「原」で終わる文字列を検索
例)
清原
小笠原

IF関数にCOUNTIF関数を組み合わせるとワイルドカードが使える

IF関数だけではワイルドカードが使えないという問題に対する解決策が、COUNTIF関数をIF関数に組み合わせる方法です。

関数は以下のようになります。

=IF(COUNTIF(B3,”*課長”),”マネージャー”,IF(COUNTIF(B3,”*部長”),”マネージャー”,””))

等級の列は、名前が「部長」もしくは「課長」と肩書で終わっている人のみ「マネージャー」と表示させることができました。

条件が複数ある場合、以下の様にIFS関数を用いることもできます。

IFS関数については以下の記事で解説していますので参考にしてください。

【Excel】IFS関数:IF関数の関数ネストを回避して複数条件設定

IFS関数はExcel2016から使えるようになった関数です。

IFS関数はIF関数とは異なりFALSE条件を設定できず、TRUE条件が見つからない場合、 #N/Aエラーを返します。

名前が「部長」もしくは「課長」と肩書で終わらない人は等級の列がブランクになるように、最後の論理式と真の場合を 「TRUE,””」としています。

最後の論理式をTRUEとすることによって、これまでに指定したいずれの条件も満たさない場合を捉え、対応する値を返してくれます。

=IFS(COUNTIF(B3,”*課長”),”マネージャー”,COUNTIF(B3,”*部長”),”マネージャー”,TRUE,””)

Excelを一度体系的に学ぶと、目に見えて生産性が飛躍的に向上します。

MOS Excel※は資格の取得、及び資格取得までのプロセスを通じて体系的にExcelスキルを身につけることができますのでコスパが良くおすすめです。

※Microsoft Office Specialist(MOS)ExcelはExcelの利用能力を証明する世界的な資格です。

筆者は「スペシャリスト(一般)」と「エキスパート(上級)」両方を取得して体系的にスキルを身に着けました。

MOS試験対策でどのテキストを使うべきか悩まれる方も多いのではないかと思いますが、以下がおすすめです。

今回の内容が参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA