概要
「入力された文字列に 使ってはいけない文字(禁止文字) が含まれていないかチェックしたい」
「ファイル名に / や * が入っていないか確認したい」
「ユーザー入力欄に絵文字や特定記号が混ざっていないか判定したい」
こういう “禁止文字チェック” を Excel で行うときに最も使いやすいのが SEARCH 関数です。
SEARCH は
「文字列の中に、特定の文字が含まれているかどうか」
を判定するのに最適で、禁止文字チェックの基本パターンになります。
ここでは、初心者向けに
SEARCH を使った禁止文字チェックの考え方・テンプレート・例題
を丁寧に解説します。
SEARCH を使った禁止文字チェックの基本
SEARCH の動き
=SEARCH(検索文字, 対象文字列)
- 見つかった場合 → 何文字目か(数値)
- 見つからない場合 → エラー(#VALUE!)
禁止文字チェックでは、この性質を利用して
- 見つかったら「NG」
- 見つからなければ「OK」
という判定を作ります。
基本パターン:禁止文字が含まれているか判定
例:A2 に / が含まれていたら NG にしたい
禁止文字 / を探すには SEARCH を使い、
見つかったかどうかは ISNUMBER で判定します。
=ISNUMBER(SEARCH("/",A2))
- TRUE →
/が含まれている(禁止文字あり) - FALSE →
/が含まれていない(安全)
ただし、このままだと TRUE が「禁止文字あり」なので、
実務では IF を組み合わせて「OK / NG」に変換します。
=IF(ISNUMBER(SEARCH("/",A2)),"NG","OK")
応用1:複数の禁止文字をまとめてチェック
禁止文字が複数ある場合は OR を使います。
例:禁止文字が /、*、? の場合
=OR(
ISNUMBER(SEARCH("/",A2)),
ISNUMBER(SEARCH("*",A2)),
ISNUMBER(SEARCH("?",A2))
)
TRUE → いずれかの禁止文字が含まれている
FALSE → 禁止文字なし
IF でラベル化するなら:
=IF(
OR(
ISNUMBER(SEARCH("/",A2)),
ISNUMBER(SEARCH("*",A2)),
ISNUMBER(SEARCH("?",A2))
),
"NG",
"OK"
)
応用2:禁止文字を「まとめて」チェックするテンプレート
禁止文字が多い場合、1つずつ書くのは大変です。
そんなときは SEARCH と SUBSTITUTE の組み合わせが便利です。
例:禁止文字をまとめて削除 → 文字数が変わったら NG
禁止文字リスト:/ * ? [ ]
=LEN(A2)<>LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"/",""),"*",""),"?",""),"[",""),"]",""))
- 文字数が変わった → 禁止文字が削除された → NG
- 文字数が変わらない → 禁止文字なし → OK
ただし、初心者には少し複雑なので、
まずは OR+SEARCH の型を覚えるのがおすすめです。
応用3:入力規則(データの入力規則)で禁止文字を“入力させない”
SEARCH は「入力後にチェック」するだけでなく、
入力規則に組み込むことで、禁止文字をそもそも入力できないようにする
こともできます。
例:A2 に / を入力できないようにする
データの入力規則 → ユーザー設定 → 数式欄に:
=NOT(ISNUMBER(SEARCH("/",A2)))
/が見つかったら → TRUE にならない → 入力拒否/が含まれなければ → TRUE → 入力OK
複数禁止文字の場合は OR を使います。
=NOT(
OR(
ISNUMBER(SEARCH("/",A2)),
ISNUMBER(SEARCH("*",A2)),
ISNUMBER(SEARCH("?",A2))
)
)
応用4:禁止文字を含むセルを一覧で抽出する
SEARCH+ISNUMBER を使えば、
禁止文字を含む行だけフィルタで抽出できます。
例:B2 に次の式を入れて下へコピー:
=ISNUMBER(SEARCH("/",A2))
TRUE の行だけフィルタすれば、
禁止文字 / を含むデータだけ一覧できます。
禁止文字チェックの“型”まとめ
禁止文字が含まれているか(TRUE/FALSE)
=ISNUMBER(SEARCH("禁止文字",A2))
禁止文字があれば NG、なければ OK
=IF(ISNUMBER(SEARCH("禁止文字",A2)),"NG","OK")
複数禁止文字
=OR(
ISNUMBER(SEARCH("禁1",A2)),
ISNUMBER(SEARCH("禁2",A2)),
ISNUMBER(SEARCH("禁3",A2))
)
入力規則で禁止文字を入力させない
=NOT(ISNUMBER(SEARCH("禁止文字",A2)))
例題
問題1
A2 に / が含まれている場合に TRUE を返したいです。
SEARCH と ISNUMBER を使った式を書いてください。
=ISNUMBER(SEARCH("/",A2))
問題2
A2 に / が含まれていたら「NG」、
含まれていなければ「OK」と表示したいです。
SEARCH と IF を使った式を書いてください。
=IF(ISNUMBER(SEARCH("/",A2)),"NG","OK")
問題3
A2 に /、*、? のいずれかが含まれている場合に TRUE を返したいです。
SEARCH と OR を使った式を書いてください。
=OR(
ISNUMBER(SEARCH("/",A2)),
ISNUMBER(SEARCH("*",A2)),
ISNUMBER(SEARCH("?",A2))
)
問題4
A2 に禁止文字 / が含まれている場合は入力を拒否したいです。
データの入力規則(ユーザー設定)に使う式を書いてください。
=NOT(ISNUMBER(SEARCH("/",A2)))
問題5
A2 に /、*、? のいずれかが含まれていたら「NG」、
含まれていなければ「OK」と表示したいです。
SEARCH、ISNUMBER、OR、IF を使った式を書いてください。
=IF(
OR(
ISNUMBER(SEARCH("/",A2)),
ISNUMBER(SEARCH("*",A2)),
ISNUMBER(SEARCH("?",A2))
),
"NG",
"OK"
)
SEARCH は「禁止文字チェック」の王道関数です。
ISNUMBER・IF・OR と組み合わせるだけで、
ファイル名チェック、入力制限、データ検証など、
実務でよくある“禁止文字の検出”が簡単に実現できます。
