LEN・SEARCH・FIND関数で文字の位置と長さを調べる方法

Excel

はじめに

Excelで文字列を扱うとき、
「特定の文字がどこにあるか知りたい」
「文字の長さを調べて分割したい」
という場面はよくあります。

例えば、

  • 「山田 太郎」からスペースの位置を見つけたい
  • 「A12345」から文字と数字の境目を特定したい
  • 「東京都新宿区…」など住所データの中から特定語を探したい

そんなときに役立つのが、LEN関数・SEARCH関数・FIND関数 の3つです。
この記事では、それぞれの使い方と違い、実務での組み合わせテクニックまで解説します。


LEN関数(文字数を数える)

書式

=LEN(文字列)

A列結果
Excel=LEN(A1)5
山田太郎=LEN(A2)4

ポイント

  • 全角文字も1文字としてカウント(Excelは全角/半角を区別しない)
  • スペースや記号も文字として数える

活用例

=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))

→ スペースの数を数える(文字列の差分計算)


SEARCH関数(文字の位置を検索)

書式

=SEARCH(検索文字, 対象文字列, [開始位置])

A列結果
山田 太郎=SEARCH(" ",A1)3
A12345=SEARCH("1",A2)2

ポイント

  • 指定した文字が「何文字目にあるか」を返す
  • 大文字・小文字を区別しない
  • 見つからない場合はエラー(#VALUE!)

応用

=LEFT(A1,SEARCH(" ",A1)-1)

→ スペースの前までを抽出(姓を取得)


FIND関数(SEARCHの厳密版)

書式

=FIND(検索文字, 対象文字列, [開始位置])

特徴と違い

比較項目SEARCH関数FIND関数
大文字小文字の区別しないする
ワイルドカード(*、?)使える使えない
処理速度少し遅いやや速い
エラー処理同じ(見つからない場合#VALUE!)

A列結果
Excel=SEARCH("e",A1)1
Excel=FIND("e",A1)1
Excel=FIND("E",A1)#VALUE!(大文字は別扱い)

実務での組み合わせテクニック

① 姓名の分割(SEARCH+LEFT+RIGHT)

A列式(姓)式(名)
山田 太郎=LEFT(A1,SEARCH(" ",A1)-1)=RIGHT(A1,LEN(A1)-SEARCH(" ",A1))

→ スペース位置をSEARCHで取得し、その前後で分割。


② コードや記号の後ろを取り出す(FIND+MID)

A列(商品コード)結果
X-AB-9876=MID(A1,FIND("-",A1)+1,4)AB-9

→ FINDで「-」の位置を取得 → その次から文字を抜き出し。


③ 特定文字を含むかどうか判定

=IF(ISNUMBER(SEARCH("東京",A1)),"含む","含まない")

→ 「東京」が含まれていれば「含む」と表示。

ポイント

  • SEARCHは「部分一致検索」に強い
  • FINDでも同様の書き方可(ただし大文字小文字を区別)

SEARCHとFINDの使い分けまとめ

項目SEARCHFIND
大文字小文字の区別しないする
ワイルドカード(*?)使える使えない
検索精度柔軟(部分一致可)厳密(完全一致)
実務向き用途名前・住所検索英数字コード検索

覚え方

あいまい検索は「SEARCH」
厳密検索は「FIND」


応用:LENとSEARCHを組み合わせて位置・範囲を動的に指定

=MID(A1,SEARCH("-",A1)+1,LEN(A1)-SEARCH("-",A1))

→ 「-」以降のすべての文字を抽出。
コードやメールアドレスなど、長さが異なる文字列にも対応可能。


まとめ

  • LEN関数:文字数を調べる
  • SEARCH関数:文字の位置を探す(大文字小文字を区別しない)
  • FIND関数:位置を探す(大文字小文字を区別する)
  • LEFT・RIGHT・MID関数と組み合わせると、文字操作が自在に

データ整形やコード分割の精度を高めるには、
まず「文字の長さ」と「文字の位置」を正確に把握すること。
LEN・SEARCH・FINDをマスターすれば、文字操作の自動化が一気に進みます。

コメント