Excel関数 逆引き集 | 禁止文字チェック → SEARCH

Excel
スポンサーリンク

概要

「入力された文字列に 使ってはいけない文字(禁止文字) が含まれていないかチェックしたい」
「ファイル名に /* が入っていないか確認したい」
「ユーザー入力欄に絵文字や特定記号が混ざっていないか判定したい」

こういう “禁止文字チェック” を 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 と組み合わせるだけで、
ファイル名チェック、入力制限、データ検証など、
実務でよくある“禁止文字の検出”が簡単に実現できます。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました