Excel FIND関数の使い方徹底ガイド|活用シーン・限界と代替関数も解説

ExcelFind関数アイキャッチ IT
記事内に広告が含まれている場合があります。

Excelで文字列を検索する際に欠かせないのがFIND関数です。

特定の文字や部分文字列の位置を取得し、データ解析やマクロ作成にも活用できます。

本記事では、FIND関数の基本から応用、活用できるシーン・できないシーン、
代替となる関数までを解説します。

ExcelFind関数リード

結論:FIND関数は大文字小文字を区別する文字位置検索の王道ツール

FIND関数は、指定した文字列が対象文字列のどこにあるかを返す関数で、大文字と小文字を区別し、ワイルドカードに対応しない点が特徴です。

正確な位置を数値で取得できるため、文字列操作や抽出、条件分岐など幅広い用途に活用可能です。


FIND関数の基本構文と動作

=FIND(find_text, within_text, [start_num])

  • find_text:検索する文字列(1文字または複数文字)
  • within_text:検索対象の文字列
  • start_num(省略可):検索を開始する位置(デフォルトは1)

例:=FIND("a","Banana") は、対象文字”Banana”のうち”a”が3文字目なので3を返します(大文字小文字区別のため、先頭”B”は省く)。


FIND関数の基本例

例1:単一文字の検索

=FIND(“x”, A1)

セルA1に”Excel”と入力されている場合、”x”は2文字目なので2を返します。

Find関数例1

例2:複数文字の検索

=FIND(“cel”,”Excel”)

“cel”は”Excel”の3文字目から始まるため、3を返します。

例3:開始位置を指定して後半を検索

=FIND(“a”, “Banana”, 3)

3文字目以降で最初に出現する”a”の位置を返します(この場合、4)。


FIND関数が活用できるシーン

  1. 文字列抽出の前処理:MID関数と組み合わせ、特定文字以降のテキストを抽出。例:顧客コードの区切り記号からIDを取り出す。
  2. データ検証:IF関数と組み合わせ、特定文字列の有無を判定し、TRUE/FALSEやメッセージ表示に利用。
  3. セル内フォーマット変更:LEFT/RIGHTと連携し、住所から都道府県名だけを抽出するなど。
  4. マクロやVBAの前準備:セル内文字の位置情報を取得し、VBAのSplit処理やReplace処理を効率化。

FIND関数が活用できないシーンと注意点

  • 大文字小文字を区別する:”A”と”a”を同一視しないため、ケースインセンシティブな検索には向かない。
  • ワイルドカード非対応:*や?などで曖昧検索できない。
  • エラー処理が必要:指定文字が見つからないと#VALUE!エラーを返すため、IFERRORでカバー。
  • 多言語や全角半角混在:日本語全角文字を検索する際、マルチバイト文字の取り扱いに注意。

IFERRORを使ったエラー回避

=IFERROR(FIND(“@”,”” & A1 & “”) , “見つかりません”)

メールアドレスに”@”が含まれない場合でもメッセージ表示で対応。

Find関数IFERRORを使ったエラー回避

IFERROR関数に関する記事はこちら


代替となる関数と使い分け

関数名大文字小文字区別ワイルドカード用途
FIND×厳密検索、位置取得
SEARCH×部分一致検索、大文字小文字無視
MATCH配列検索、参照列内の位置取得
  • SEARCH関数: 大文字小文字を区別せず、ワイルドカード対応。
  • MATCH関数: データベース的検索やVLOOKUPと組み合わせ。ワイルドカード含むが、大文字小文字は区別しない。

実践的使用例:活用シーン

使用例1:メールアドレスのユーザー名抽出

=LEFT(A2, FIND(“@”,A2)-1)

セルA1に”taro@example.com“がある場合、”taro”を抽出。

Find関数使用例1

使用例2:注文番号から枝番を取得

=RIGHT(A1, LEN(A1)-FIND(“-“,A1))

セルA1に”ORD-2025-001″がある場合、”2025-001″を取得。

Find関数使用例2

使用例3:IFと組み合わせた判定

=IF(ISNUMBER(FIND(“東京”,A1)), “東京支店”, “その他”)

支店名に”東京”が含まれるかで分類。

Find関数使用例3

応用テクニック:複数文字の動的検索

=FIND(D2, A2 & “”)

セルD2に検索語を動的に指定し、汎用的な検索式を構築。


マクロでの利用例

VBA内でFind関数を再現:

Dim pos As Long
pos = InStr(1, Range("A1").Value, "abc", vbBinaryCompare)

InStr関数はFIND同様、大文字小文字を区別。


まとめ:FIND関数をマスターして文字列操作を効率化!

FIND関数は厳密な文字位置取得に最適なツールです。

ケースセンシティブかつワイルドカード非対応という特性を理解し、SEARCHやMATCHと使い分けることで、文字列処理の幅が広がります。

IFERRORでエラーを回避し、LEFT/RIGHT/MIDとの組み合わせで実務効率を向上させましょう。

この記事の例を実際に試し、日々のExcel作業をさらにスマートにしてください。