IF関数内で「で始まる/で終わる/を含む」を使う・IF関数とワイルドカード

IF関数の論理式内ではワイルドカード(*,?)を直接取り扱うことはできません。「で始まる/で終わる/を含む、といった条件で場合分けをする」という処理をする場合は少々複雑になります。これらの処理はCOUNTIF関数と組み合わせて間接的にワイルドカードを使用し、完成させます。以下の記事で流れを紹介します。

IF関数内で「で始まる/で終わる/を含む」を使う(部分一致処理)

IF関数において

[○○を含む場合はX,それ以外はY]
[特定の文字が入っていたらX,それ以外はY]
(XやYは文字や数値や計算式)

のような処理をする場合は、論理式欄に【COUNTIF関数+ワイルドカード】を用いるのがよいでしょう。[COUNTIF関数で特定の文字「を含む」セルを数える]については別記事にあるのでご参照ください。

基本的な流れとしては
COUNTIFで「○を含む」かどうかを調べた結果が「1」ならばX、それ以外はY
という処理をします。

XとYはあなたが使う文字列や式に置き換えてください。

またCOUNTIF関数の調整をすることで「○を含む」(部分一致)だけでなく、「○で始まる」(前方一致)、「○で終わる」(後方一致)の処理も可能です。

解説と部分一致サンプルの操作

以下のような表で、
B列に「崎」を含んでいれば"X",それ以外は"Y"
としてみます。結果はC列に表示させます。

メンバー 住所 検索結果1 検索結果2 キーワード
A10001 横浜市
A10002 川崎市
A10003 中央区
A10004 北区
A10005 横須賀市
A10006 高崎市
A10007 大浜区

定数(決まった値)で「~を含む」を指定する

セルB2が「崎」を含んでいるかを検査する式は

=COUNTIF(B2,"*崎*")

で、含んでいれば「1」となります。
[セルB2の中で「崎」を含んでいるセルの数]を調査する式だからです。
含んでいなければ「0」となります。

したがって論理式には

=COUNTIF(B2,"*崎*")=1

を用います。

最終的に作成するIF関数は

=IF(COUNTIF(B2,"*崎*")=1,"X","Y")

とします。

なお、「崎」が1つではなく複数でもよしとするならば「=」の部分を「>=」として以下のようにします。

=IF(COUNTIF(B2,"*崎*")>=1,"X","Y")

セル参照(変わることがある値)で「~を含む」を指定する

また
「崎」を含む
ではなく
セルF2に入力されている値を含む
とするならば、論理式は

=COUNTIF(B2,"*" & $F$2 & "*")=1

とします。下にコピーすることを考慮してセルF2部分は絶対参照の設定をします。

最終的には以下のような式となります(D列に作成した)。

=IF(COUNTIF(B2,"*"&$F$2&"*")=1,"X","Y")

なお、セルF2で入力した値を2つ以上含んでもよい場合には「=」の部分を「>=」とし以下のような計算式にします。

=IF(COUNTIF(B2,"*"&$F$2&"*")=1,"X","Y")

完成サンプルファイルのダウンロード

IF関数の部分一致:まとめとコピペ用資料

セルB2の値を検査して、適合している場合はX、不適合の場合はYを返すサンプルです。

部分一致:「~を含む」の例(定数・キーワードが「崎」の場合)

=IF(COUNTIF(B2,"*崎*")>=1,"X","Y")

部分一致:「~を含む」の例(参照・キーワードが入力されているセルが「F2」の場合)

=IF(COUNTIF(B2,"*"&$F$2&"*")>=1,"X","Y")

前方一致:「~で始まる」の例(定数・キーワードが「崎」の場合)

=IF(COUNTIF(B2,"崎*")>=1,"X","Y")

前方一致:「~で始まる」の例(参照・キーワードが入力されているセルが「F2」の場合)

=IF(COUNTIF(B2,$F$2&"*")>=1,"X","Y")

後方一致:「~で終わる」の例(定数・キーワードが「崎」の場合)

=IF(COUNTIF(B2,"*崎")>=1,"X","Y")

後方一致:「~で終わる」の例(参照・キーワードが入力されているセルが「F2」の場合)

=IF(COUNTIF(B2,"*"&$F$2)>=1,"X","Y")

コメント

PAGE TOP
タイトルとURLをコピーしました