FIND関数とは?Excelで文字の位置を調べる方法

FIND関数は文字の位置を調べる Excel

FIND関数とは?

Excelで「特定の文字がどこにあるか」を調べたいときに使うのがFIND関数です。

FIND関数は、文字列の中から指定した文字や単語を探し、その位置を数値で返します。

例えば次のような場面で活躍します。

  • メールアドレスの「@」の位置を調べる
  • 住所の区切り位置を探す
  • MID関数と組み合わせて文字を抽出する

まずは、FIND関数で何ができるのかを確認していきましょう。

なぜ文字の位置を調べる必要があるのか

Excelでは、文字列はすべて「連続したデータ」として扱われます。

そのため、

  • 名前
  • 住所
  • メールアドレス
  • 管理番号

などは、人間には区切りが分かっても、Excelには区切りが分かりません。

そこで必要になるのが「文字の位置を調べる関数」です。

特にFIND関数は、MID関数と組み合わせることで、文字の途中データを抽出する際に欠かせない関数です。

FIND関数の基本書式

■書式

=FIND(検索文字, 対象セル)
引数内容
検索文字探したい文字
対象セル調べる文字列

FIND関数の基本例

FINDを使って文字の位置を調べる

例:メールアドレスの「@」位置を調べる

データ

A1 = example@test.com

数式

=FIND("@", A1)

結果

8
FIND関数で文字の位置を調べた

「@」が8文字目にあることが分かります。

【実務例】メールアドレスのユーザー名を抽出する

メールアドレスでは、「@」より前がユーザー名になります。

ユーザー名

ここで、FIND関数とLEFT関数を組み合わせます。

数式

=LEFT(A1, FIND("@", A1)-1)

処理の流れ

① FIND関数
→ @の位置を調べる

② LEFT関数
→ その位置の手前までを取得

このように、FIND関数は「文字の場所を調べる役割」を持っています。

困ったちゃん
困ったちゃん

=LEFT(A1, FIND(“@”, A1)-1)の式で-1ってどういう意味なの?

ももねこ先生
ももねこ先生

「@ 自体はいらないから」-1で@の部分を引いてます。

役割

ー1で@が入らないようにする
  • FIND("@", A2)
    👉 「@」が 何文字目にあるか を返す
  • -1
    👉 @の1文字手前まで にする
  • LEFT
    👉 左からその文字数だけ取得

つまり「-1」は何をしている?

FINDは「その文字の位置」を返す
LEFTは「文字数」で切り出す

👉 だから 1文字分引く

初心者向けの覚え方

ルール

  • 区切り文字を含めたくない → -1
  • 区切り文字の後から始めたい → +1

セットで覚える

LEFT  → -1
MID   → +1

FIND関数の注意点

■大文字と小文字を区別する

FIND関数は

ABC

abc

を別の文字として認識します。

文字列結果説明
ABC=FIND(“A”, A1)1先頭の大文字 A を見つけた
ABC=FIND(“a”, A1)#VALUE!小文字 a は見つからない(大文字と区別)
大文字と区別

■文字が見つからないとエラーになる

エラー表示(#VALUE!)

検索した文字が存在しない場合、

#VALUE!

エラーになります。


①エラーを防ぐ方法(IFERROR)

IFERRORは、エラーが出たときだけ、代わりの表示に切り替える関数です。

=IFERROR(FIND("a", A1), "")

文字が見つからない場合、空白(””)を表示できます。

IFERRORで空白

②エラーを防ぐ方法(SEARCH)

SEARCHは、文字列の中から特定の文字列を探し出す関数です。

関数特徴
FIND大文字小文字を区別
SEARCH区別しない
=SEARCH("a", "A1")   結果: 1
=SEARCH("A", "A1") 結果: 1
SEARCH関数で解決

📌ポイント

SEARCH は大文字・小文字を区別しません。

初心者の場合は、まずFIND関数を覚えると理解しやすいです。

FIND関数はMID関数とセットで使う

FIND関数は単体でも使えますが、本領を発揮するのはMID関数と組み合わせたときです。

MID関数では「開始位置」を指定する必要があります。

その開始位置を調べるのがFIND関数の役割です。

例:@以降の文字を抽出

@以降の文字
=MID(A1, FIND("@", A1)+1, 99)
文字を抽出
困ったちゃん
困ったちゃん

LEFTの時は@がいらないから-1で、MIDは@の次の文字から取得したいから+1だよね。でも99って何?

ももねこ先生
ももねこ先生

「最後まで全部取れればOK」という意思表示です。
99自体に特別な意味はありません。

困ったちゃん
困ったちゃん

それなら、99なんて入れなくていいんじゃないの?

ももねこ先生
ももねこ先生

なぜ?入れるとかというとMID関数は 3つ目の引数(文字数)が必須 だからです。

=MID(文字列, 開始位置, 文字数)

3つ目の引数

なぜ99で問題ないのか

理由①:足りなければ勝手に止まる

MIDは

  • 指定文字数 > 実際の残り文字数

でも エラーになりません

➡ 取れるところまで取って終わり。


理由②:メールアドレスは99文字もない

実務で扱う

  • ドメイン
  • 拡張子

はせいぜい数十文字。

👉 99を超えることはまずない。

困ったちゃん
困ったちゃん

じゃあ9でもいい?999でもいい?

ももねこ先生
ももねこ先生

OKです ただし、

  • 9 → 少なすぎる可能性
  • 999 → 意味なくデカい

👉 99は「十分大きい、でも常識的」な数字

実務で完璧に書くなら

=MID(A1, FIND("@", A1)+1, LEN(A1))
実務での数式

👉 残り文字数を動的に指定

でも初心者には99でいい理由

  • 数式が短い
  • 考えることが減る
  • 読みやすい

👉 まずは動くことが最優先

まとめ

FIND関数は、文字列の中から特定の文字の位置を調べる関数です。

特に次のような場面で活躍します。

  • メールアドレスの解析
  • 住所データの分割
  • MID関数との組み合わせ

Excelで文字処理を行う場合、MID関数と合わせて覚えておくと、作業の幅が大きく広がります。

ももねこ

運営者プロフィール

パソコンインストラクターの経験を生かして、シニアの方や初心者の方に、WordやExcelの「できた!」を届けるために活動しています。

ももねこをフォローする