B列の市町村名に、C2セルの文字列が含まれているかどうか調べます。
Excel関数で文字列が含むかどうか調べる
下記のIF関数とCOUNTIF関数を使用した式を入力します。
=IF(COUNTIF(B4,"*" & $C$2 & "*"),"○","×")
- "*" & $C$2 & "*" はワイルドカードで、前後に*(アスタリスク)を付ければ前後にどんな文字があってもという意味で、含まれていればということになります。
- $C$2にしているのは、検索する文字列のセルは1つなので、コピーしても変わらないように絶対番地にしています。
- COUNTIF関数は見つかった個数を返します。見つからなければ0が返るので、FALSEと同値になります。
- IF関数でCOUNTIF関数がTRUE(1以上)を返せば〇を表示し、FALSE(0)を返せば×を表示します。
下のセルにコピーすれば文字列判定の完了です。
Excel VBAで文字列が含むかどうか調べる
シートに下のような検索開始ボタンを配置します。
ボタンのクリックイベントに、VBAを入力します。
Option Explicit
Private Sub CommandButton1_Click()
Dim lrow As Long
lrow = 4
Do
If Cells(lrow, 2) <> "" Then
If InStr(1, Cells(lrow, 2), Range("C2")) > 0 Then
Cells(lrow, 4) = "〇"
Else
Cells(lrow, 4) = "×"
End If
Else
Exit Do
End If
lrow = lrow + 1
Loop
End Sub
- 変数 lrowは行番号を保存します。
- Doループで、B列の文字列が空白ならループを抜けます。
- INSTR関数でC2セルの文字列が含むかどうか判定し、1以上なら〇、0なら×を表示します。
- 次の行を調べます。
シートに戻り検索開始ボタンをクリックすると、判定結果が表示されます。
複数文字が含むかどうか調べても問題なく実行できます。