Excel一覧 Excel操作・関数 検索・抽出関数(VLOOKUP・MATCH・FILTERなど) 関数の使い方

【Excel】セル内の文字を検索する関数|部分一致・位置特定・抽出まで完全解説

Excelで「セルの中に特定の文字が含まれているか調べたい」「その文字がどこにあるか知りたい」――
そんなときに役立つのが文字検索系の関数です。

たとえば次のような場面は多いでしょう。

  • 「セル内に“東京”という文字が入っているかを確認したい」
  • 「文章の中から“@”の位置を調べたい」
  • 「一部の文字が含まれている場合だけ別の値を返したい」
  • 「セルの中で特定のキーワードを検索して抽出したい」

この記事では、Excelでセル内の文字を検索・検出・抽出する関数の使い方を、
初心者にも分かりやすく、実務でも使える形で解説します。

目次

✅ 文字検索で使う主要関数一覧

Excelには、セル内の文字を探すための関数が複数あります。
まずは役割の違いを整理しましょう。

関数名主な用途返す結果大文字小文字の区別
FIND文字列を検索して位置を返す数値(何文字目か)区別する
SEARCHFINDと同じだがワイルドカード対応数値区別しない
IF + ISNUMBER検索結果を条件式として活用TRUE/FALSE(または任意の結果)組み合わせ次第
FILTER / TEXT関数検索文字を含む行や部分文字を抽出文字列・セル範囲区別しない

それぞれの特性を理解して使い分けることで、
「位置の特定」「存在判定」「抽出」まで自在に扱えます。


✅ FIND関数でセル内の文字位置を検索する

まずは基本となるFIND関数から見ていきましょう。


FIND関数の構文

"=FIND(検索文字列, 対象セル, [開始位置])"


・説明

指定したセルの中で、検索文字列が何文字目にあるかを返します。
大文字・小文字は区別されます。


・例1:単純に位置を調べる

"=FIND("東",A2)"

A列結果
東京都新宿区=FIND("東",A2)1
北海道札幌市=FIND("東",A2)#VALUE!(見つからない)

「東」は1文字目にあるため、結果は「1」になります。


・例2:文中の位置を調べる

"=FIND("区",A2)"

→ 「東京都新宿区」では、「区」が7文字目にあるので「7」を返します。


・POINT

  • 検索対象が見つからないと「#VALUE!」エラー
  • 大文字・小文字を区別する
  • 「開始位置」引数で検索開始位置を調整できる

・例3:途中から検索したい場合

"=FIND("o","Tokyo",3)"

→ 「o」を3文字目以降から検索。結果は「4」。


FIND関数は、文字の位置を数値で知りたいときに使うのが基本です。

参考:【Excel】TRIM関数とLEN関数の活用法とは?Excelで文字列処理をスマートにする便利テクニックを徹底解説


✅ SEARCH関数で部分一致検索を行う

FIND関数とほぼ同じ動きをするのがSEARCH関数です。
違いは「大文字小文字を区別しない」ことと、「ワイルドカード」が使える点です。


SEARCH関数の構文

"=SEARCH(検索文字列, 対象セル, [開始位置])"


・例1:大小文字を区別せず検索

A列結果
Tokyo=SEARCH("T",A2)1
tokyo=SEARCH("T",A3)1(FINDでは#VALUE!になる)

SEARCHは「T」も「t」も同じ扱いです。


・例2:ワイルドカードで部分一致

"=SEARCH("東*",A2)"

「東」で始まる文字列(例:東京都・東京駅など)を検索可能。

ワイルドカードには次の2種類があります。

記号意味
*任意の文字列"東*" → 東で始まるすべての語
?任意の1文字"A?C" → ABCやADCなど

・例3:「@」を含むメール判定

"=IF(ISNUMBER(SEARCH("@",A2)),"メールあり","なし")"

A列結果
test@example.comメールあり
sampletextなし

SEARCH関数は「含まれているかどうか」を判定する用途に最適です。

参考:【Excel】「セルに特定の文字が入っていたら」複数条件を判定する方法|IF・OR・SEARCH関数


✅ IF関数+ISNUMBERで「文字が含まれるか」を判定する

SEARCH関数をIF関数と組み合わせると、
「特定の文字を含むかどうか」をTRUE/FALSEで分岐できます。


・特定の文字を含むかどうか判定する構文

"=IF(ISNUMBER(SEARCH(検索文字列, 対象セル)), 条件が真のとき, 偽のとき)"


・例1:「東」が含まれていたら「該当」

"=IF(ISNUMBER(SEARCH("東",A2)),"該当","対象外")"

A列結果
東京都該当
北海道対象外

・例2:「特定文字が入っていたら別計算」

"=IF(ISNUMBER(SEARCH("A",B2)),C2*1.1,C2)"

→ 「A」が入っているセルだけ10%加算する、など応用可能。


・POINT

  • ISNUMBERは「SEARCHの結果が数値=見つかった」と判定
  • 組み合わせで条件付き処理が可能
  • FIND関数でも同様に使える(ただし大文字区別)

✅ 部分一致で文字を抽出する方法

「含まれているか」ではなく、実際に含まれる文字を抜き出したい場合は、
TEXT関数やMID関数を組み合わせます。


・例1:「@」以降の文字を抽出

"=MID(A2,SEARCH("@",A2)+1,50)"

A列結果
test@example.comexample.com
info@sample.jpsample.jp

SEARCHで「@」の位置を求め、その次の文字からMIDで抽出しています。


・例2:「特定文字まで」の文字を抽出

"=LEFT(A2,SEARCH("区",A2))"

A列結果
東京都新宿区東京都新宿区
東京都豊島区池袋東京都豊島区

「区」が見つかったところまでを抽出します。


・例3:特定文字の前の部分を取り出す

"=LEFT(A2,SEARCH("区",A2)-1)"

→ 「区」の直前までを取り出します。


・POINT




✅ FILTER関数で特定の文字を含む行だけ抽出(Excel 365以降)

大量のデータから「特定の文字を含む行だけを抽出」したい場合、
FILTER関数を使うと一瞬でできます。


・特定の文字を含む行だけを抽出する構文

"=FILTER(抽出範囲, ISNUMBER(SEARCH(検索文字列, 判定範囲)))"


・例:商品名に「りんご」を含む行だけ表示

"=FILTER(A2:C100, ISNUMBER(SEARCH("りんご",B2:B100)))"

商品名価格在庫
青森りんご120
りんごジュース200
みかん90×

→ 「りんご」を含む行だけ抽出されます。


・POINT

  • 部分一致検索+行抽出を同時に実現
  • 住所・顧客リスト・商品データなどのフィルタに最適
  • 古いExcelでは使えない(365/2021以降限定)

✅ 実務で使える応用テクニック

・複数キーワードで検索

"=IF(OR(ISNUMBER(SEARCH("東京",A2)),ISNUMBER(SEARCH("大阪",A2))),"該当","対象外")"

→ 「東京」または「大阪」が含まれていれば「該当」。


・複数条件を組み合わせて抽出(FILTER関数応用)

"=FILTER(A2:D100,(ISNUMBER(SEARCH("青森",B2:B100)))+(ISNUMBER(SEARCH("秋田",B2:B100))))"

→ 「青森」または「秋田」を含む行をまとめて抽出。


・関数だけでメールドメインを分離

"=RIGHT(A2,LEN(A2)-SEARCH("@",A2))"

→ メールアドレスの@以降を抜き出し可能。


・部分一致でエラーを回避したい場合

"=IFERROR(SEARCH("東京",A2),"")"

→ 見つからない場合は空欄を返す。


✅ 検索系関数の違いまとめ

関数名主な用途ワイルドカード大文字区別見つからない場合
FIND正確な位置検索×#VALUE!
SEARCH部分一致・柔軟検索×#VALUE!
IF+ISNUMBER含有判定SEARCH依存区別しない条件分岐可能
MID/LEFT/RIGHT抽出××エラーになることも
FILTER行抽出×空白になる

目的に応じてこれらを組み合わせると、
セル内の文字検索が驚くほど効率化します。


✅ 文字検索のコツと注意点

  • FINDとSEARCHは見つからない場合に**#VALUE!エラー**になる
    → 「IFERROR」で回避可能
  • 全角・半角やスペース違いで検索結果が異なる場合あり
    → 「TRIM」「CLEAN」などで整形してから検索
  • 大文字小文字を区別したい場合はFIND、小文字無視ならSEARCH
  • 検索文字を動的に変えたいときは別セル参照で
    (例:"=SEARCH(B1,A2)" のようにB1の内容を検索)

✅ RPAやPower Automateと連携した検索自動化のヒント

Excelの文字検索は、Power AutomateやUiPathと連携することで、
自動化にも応用できます。


・RPAを使用する例

  • Power Automateで毎日Excelを開き、特定文字を含む行だけメール通知
  • UiPathで検索結果を抽出して自動仕分け
  • Excel関数で事前に検索列を作成し、RPAで条件抽出

手動検索を関数化することで、
RPAツールの処理速度や精度を大幅に向上させることができます。


✅ まとめ:Excel関数でセル内の文字を自在に検索しよう

  • FIND関数は「位置を数値で返す」
  • SEARCH関数は「大文字小文字を無視・ワイルドカード対応」
  • IF+ISNUMBERで「文字が含まれるか」を判定
  • MID/LEFT/RIGHTで「文字を抽出」
  • FILTERで「行全体を部分一致抽出」
  • エラー回避はIFERRORで対策

Excelの文字検索関数は、
「探す・見つける・取り出す・仕分ける」という一連の処理を自動化できます。

日常業務の中で、キーワード検索やデータ抽出の効率を上げたい方は、
今回紹介した関数を組み合わせて、自動検索の仕組みを構築してみてください。

-Excel一覧, Excel操作・関数, 検索・抽出関数(VLOOKUP・MATCH・FILTERなど), 関数の使い方