FIND関数・SEARCH関数の使い方|文字が何文字目にあるか
※写真はイメージです
書き方はこれだけ
=FIND(探す文字, 対象)FINDは、探す文字が左から何文字目にあるかを数字で返す関数です。「sato@example.jp」の「@」なら5。FIND単体で使うことは少なくて、LEFTやMIDと組み合わせて「@より前」「ハイフンの後ろ」を取り出すのが定番の使い方です。大文字と小文字を区別したくない、「*」などのワイルドカードを使いたいときは、SEARCHを使います。
=LEFT(A2,FIND("@",A2)-1)。@の位置から1を引いた文字数だけ、左から取り出しています。この図の表をExcelファイルでダウンロード(問題と答えのシートつき)
よく使う例
| やりたいこと | 式 |
|---|---|
| @より前(ユーザー名) | =LEFT(A2,FIND("@",A2)-1) |
| @より後ろ(ドメイン) | =MID(A2,FIND("@",A2)+1,100) |
| 「東京都」を含むか | =ISNUMBER(FIND("東京都",A2))(含めばTRUE) |
| 2つ目のハイフンの位置 | =FIND("-",A2,FIND("-",A2)+1) |
| 姓と名を空白で分ける(姓) | =LEFT(A2,FIND(" ",A2)-1) |
3つ目の「含むか」は、IFと組み合わせると「東京都の人に印」のように使えます。正直、含むかどうかを見たいだけなら、COUNTIFの =COUNTIF(A2,"*東京都*") のほうが分かりやすいかもしれません。
FINDとSEARCHのちがい
| FIND | SEARCH | |
|---|---|---|
| 大文字と小文字 | 区別する("A"と"a"は別) | 区別しない |
| ワイルドカード(* ?) | 使えない | 使える |
| 見つからないとき | #VALUE! | #VALUE! |
日本語の文章を扱うなら、ほとんどFINDで足ります。英字のメールアドレスや商品コードで、大文字・小文字がまざっているときはSEARCHのほうが安全です。
うまくいかないとき
1#VALUE! になる
探す文字が見つかりません。
直し方=IFERROR(LEFT(A2,FIND("@",A2)-1),"") のように、IFERRORで空欄にします。
2あるはずの空白が見つからない
全角の空白と半角の空白は別の文字です。
直し方探す文字を全角の空白にするか、先にSUBSTITUTEで空白をそろえます。
3位置が1つずれる
FINDは探す文字そのものの位置を返します。
直し方その文字を含めたくないなら、LEFTでは -1、MIDでは +1 します。
サンプルファイルで試す
黄色のセルに式を入れて、「答え」のシートと比べてください。
よくある質問
FIND関数とは?
探す文字が左から何文字目にあるかを返す関数です。=FIND("@",A2) で@の位置が分かります。
FINDとSEARCHのちがいは?
FINDは大文字と小文字を区別し、ワイルドカードが使えません。SEARCHは区別せず、ワイルドカードが使えます。
メールアドレスの@より前を取り出すには?
=LEFT(A2,FIND("@",A2)-1) です。
見つからないときに#VALUE!を出さないには?
IFERRORで囲んで、見つからないときは空欄などを返します。
一緒に覚えたい関数・操作
このページについて
操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報