サラリーマン戦士が語る、TEXTSPLIT・MID・LEFTと組み合わせて最強化する文字列処理テクニック
Excelで文字列処理をしていると、 「特定の文字がどこにあるか知りたい」 「ハイフンの位置を調べて商品コードを分割したい」 「スペースの位置を使って氏名を分けたい」 「特定の文字が含まれているか判定したい」 といった場面が必ずあります。
そんな“文字列の位置”を正確に取得できるのが FIND(ファインド)関数 です。
FINDは、 指定した文字が何文字目にあるかを返すシンプルで強力な検索関数 で、 LEFT / MID / RIGHT や TEXTSPLIT と組み合わせることで、 文字列処理の自由度が一気に上がります。
この記事では、FINDの基本から応用まで、 サラリーマン戦士としての実務経験を交えながら 徹底解説します。
🔍 FIND関数 の書式
コード
=FIND(検索文字列, 対象文字列, [開始位置])
✔ 引数の意味
- 検索文字列:探したい文字
- 対象文字列:検索対象
- 開始位置(任意):検索を始める位置(デフォルトは1)
📘 基本例:ハイフンの位置を取得
A2
コード
ABC-123-XYZ
▶ 使用する式
コード
=FIND("-", A2)
→ 4(4文字目)を返します。
📘 スペースの位置を取得(氏名分割に最適)
A2
コード
山田 太郎
▶ 使用する式
コード
=FIND(" ", A2)
→ 3(3文字目)を返します。
🎯 2つ目のハイフンの位置を取得(開始位置を指定)
コード
=FIND("-", A2, FIND("-", A2) + 1)
→ 2つ目のハイフンの位置を取得できます。
🔥 FIND × LEFT / MID / RIGHT で文字列を分割
FINDは、LEFT / MID / RIGHT と組み合わせることで “柔軟な文字列抽出”が可能になります。
■ 商品コードの「カテゴリ部分」を取得(LEFT)
コード
=LEFT(A2, FIND("-", A2) - 1)
→ 「ABC-123-RED」から ABC を取得。
■ 商品コードの「番号部分」を取得(MID)
コード
=MID(A2,
FIND("-", A2) + 1,
FIND("-", A2, FIND("-", A2)+1) - FIND("-", A2) - 1)
→ 123 を取得。
■ 商品コードの「色部分」を取得(RIGHT)
コード
=RIGHT(A2, LEN(A2) - FIND("-", A2, FIND("-", A2)+1))
→ RED を取得。
LEFT/MID/RIGHTについては LEFT関数 MID関数 RIGHT関数 の記事も参考になります。
🔥 FIND × TEXTSPLIT で“完全自動分割”
TEXTSPLITを使えば、 FINDを使わずに分割できますが、 「区切り文字の位置を確認したい」場面ではFINDが最強です。
TEXTSPLITについては TEXTSPLIT関数 を参照ください。
🧩 FIND × SUBSTITUTE で“n番目の文字を検索”
例:3つ目のハイフンの位置を取得
コード
=FIND("-", SUBSTITUTE(A2, "-", "@", 3))
→ 3つ目のハイフンが「@」に置き換わるため、その位置を取得できます。
SUBSTITUTEについては SUBSTITUTE関数 を参照ください。
📅 日付文字列から「月」の位置を取得
A2
コード
2026/04/25
▶ 使用する式
コード
=FIND("/", A2)
→ 最初の「/」の位置(5)を返します。
📊 FIND × VALUE で数字だけ抽出
例:「A-123-XYZ」から数字部分だけ抽出
コード
=VALUE(MID(A2, FIND("-", A2)+1, FIND("-", A2, FIND("-", A2)+1)-FIND("-", A2)-1))
→ 123 を数値として取得できます。
🧠 FINDの強み(実務で感じたメリット)
✔ 文字列の位置を正確に取得できる
複雑な文字列でも、区切り文字の位置が分かれば自由自在に分割できます。
✔ LEFT / MID / RIGHT と相性抜群
FINDを使うことで、 「何文字目から何文字取り出すか」を柔軟に指定できます。
✔ TEXTSPLITが使えない場面でも活躍
TEXTSPLITは便利ですが、 「区切り文字の位置を知りたい」場面ではFINDが必須です。
✔ SUBSTITUTEと組み合わせると“n番目の検索”が可能
複数の区切り文字がある場合でも対応できます。
🛠 FINDの注意点(初心者がつまずきやすいポイント)
❗ 1. FINDは大文字・小文字を区別する
例:「A」と「a」は別扱いです。
大文字小文字を区別しない場合は SEARCH関数 を使います。
→ SEARCH関数
❗ 2. 見つからない場合はエラー(#VALUE!)
IFERRORで包むと安全です。
コード
=IFERROR(FIND("-", A2), "")
❗ 3. 全角・半角の違いに注意
「-」と「-」は別文字です。
📊 FIND と SEARCH の違い
| 項目 | FIND | SEARCH |
|---|---|---|
| 大文字小文字の区別 | する | しない |
| ワイルドカード | × | ○ |
| 速度 | 速い | 普通 |
| 実務向き | 正確な検索 | 曖昧検索 |
🧑💼 サラリーマン戦士が実際に使ってみた感想
FINDを使い始めて感じたのは、 「文字列処理の基礎はFINDで決まる」 ということです。
特に、
- 商品コードの分割
- 氏名の姓・名分割
- CSVの一部抽出
- 改行区切りの処理
- TEXTSPLITと組み合わせた整形
これらの処理が、 FINDを使うことで圧倒的に正確かつ柔軟になります。
TEXTSPLITが登場した今でも、 「区切り文字の位置を知りたい」場面ではFINDが最強です。
🧩 FINDの実務的な応用アイデア
- 商品コードのカテゴリ・番号・色を抽出
- 氏名を姓・名に分割
- メールアドレスの「@」位置を取得
- URLのドメイン部分を抽出
- TEXTSPLITと組み合わせて柔軟な分割
- SUBSTITUTEと組み合わせてn番目の区切りを検索
特に、 「FIND → MID → VALUE」 の流れは、数字抽出で最強です。
📝 まとめ:FINDは“文字列処理の基礎となる検索関数”
- 文字列の位置を正確に取得できます
- LEFT / MID / RIGHT と組み合わせると最強
- TEXTSPLITが使えない場面でも活躍
- 大文字小文字を区別するため正確
- SUBSTITUTEと組み合わせるとn番目の検索も可能
Excelで文字列処理を極めたいなら、 FIND関数は必ず覚えておくべき基礎関数です。
コメントを残す