概要
FIND関数は「文字列の中から指定した文字や部分文字列を検索し、その位置(文字数目)を返す」関数です。検索結果は「左から数えて何文字目か」で返されます。検索対象が見つからない場合はエラー(#VALUE!)になります。大文字・小文字を区別するのが特徴で、区別しない検索をしたい場合はSEARCH関数を使います。
基本の使い方
書式
=FIND(検索文字列, 対象文字列, [開始位置])
- 検索文字列:探したい文字や部分文字列
- 対象文字列:検索対象となる文字列やセル
- 開始位置:検索を始める位置(省略時は1=先頭から)
例
=FIND("A", "ABCDEF") // 1(Aは1文字目)
=FIND("C", "ABCDEF") // 3(Cは3文字目)
=FIND("DEF", "ABCDEF") // 4(DEFは4文字目から)
=FIND("a", "ABCDEF") // #VALUE!(大文字小文字を区別するため見つからない)
=FIND("B", "ABCDEF", 3) // #VALUE!(3文字目以降にはBがない)
具体例
区切り文字の位置を調べる
「AB-12345」の中でハイフンの位置を調べる:
=FIND("-", A2)
結果は3。これを利用してLEFTやRIGHTで区切り文字の左右を切り出せます。
姓名のスペース位置を調べる
「山田 太郎」の中でスペースの位置を調べる:
=FIND(" ", A2)
結果は3。これを使って姓と名を分けられます。
メールアドレスの「@」位置を調べる
=FIND("@", A2)
「@」の位置を返すので、ユーザー名部分とドメイン部分を分ける処理に使えます。
応用テンプレート
区切り文字の左側を抽出
=LEFT(A2, FIND("-", A2)-1)
ハイフンの左側を取り出す。
区切り文字の右側を抽出
=RIGHT(A2, LEN(A2)-FIND("-", A2))
ハイフンの右側を取り出す。
複数回出現する文字の位置を調べる
2回目以降を探すには開始位置を指定します。
=FIND("-", A2, FIND("-", A2)+1)
最初のハイフンの次から検索することで、2回目の位置を取得できます。
エラー対策
見つからない場合に空欄を返す:
=IFERROR(FIND("-", A2), "")
よくあるつまずきと対策
大文字小文字を区別する
FINDは「A」と「a」を区別します。区別したくない場合はSEARCHを使いましょう。
見つからないとエラーになる
#VALUE!が出るのは正常な挙動です。IFERRORで処理すると安心です。
開始位置を誤る
開始位置は「文字数目」で指定します。0や負数は使えません。
全角・半角の違い
「-」と「-」は別文字です。入力データの全角半角を統一してから検索しましょう。
例題
問題1: A2の文字列から「-」の位置をB2に表示してください。
解答例:
=FIND("-", A2)
問題2: C2の文字列からスペースの位置をD2に表示してください。
解答例:
=FIND(" ", C2)
問題3: E2のメールアドレスから「@」の位置をF2に表示してください。
解答例:
=FIND("@", E2)
問題4: G2の文字列から最初のハイフンの左側をH2に表示してください。
解答例:
=LEFT(G2, FIND("-", G2)-1)
問題5: I2の文字列から2回目のハイフンの位置をJ2に表示してください。
解答例:
=FIND("-", I2, FIND("-", I2)+1)
まとめ
FINDは「文字列の中で指定文字がどこにあるか」を返す基本関数です。区切り文字の位置を調べてLEFT/RIGHT/MIDと組み合わせると、文字列処理の幅が一気に広がります。大文字小文字を区別する点、見つからないとエラーになる点を理解しておけば、初心者でも安心して使えます。講師として強調したいのは「FINDは位置を返すだけ、切り出しは他関数と組み合わせる」という考え方です。これを押さえれば、文字列操作の基礎がしっかり身につきます。
