2025/7/7

文字列検索・抽出関数の違い(SEARCH, FIND, MID, TEXTSPLITなど)【エクセル】

Thumbnail for 文字列検索・抽出関数の違い(SEARCH, FIND, MID, TEXTSPLITなど)【エクセル】

はじめに

エクセルには、文字列の中から一部(またはその位置)を取得する関数 が存在します。 この文字列検索・抽出関数の違いについてまとめました。

ここでは、以下について取り扱います:

  • 関数の使用例
  • 比較表
  • 使い分けの目安

関数の使用例

文字列検索・抽出関数である SEARCH, FIND, LEFT, RIGHT, MID, TEXTBEFORE, TEXTAFTER, TEXTSPLIT関数の それぞれを使った 文字列の位置を取得、または文字列を抽出する例 を示します。

ABCDEFGHIJKLMN
1ABCxxMNxxXYZ
2関数名検索値指定値取得値
3SEARCHx?4文字目
4FINDxx4文字目
5
6LEFT抽出文字数:3ABC(先頭3文字)
7RIGHT抽出文字数:3XYZ(末尾3文字)
8MID6抽出文字数:3MNx(6文字目からの3文字)
9
10TEXTBEFORExxABC("xx"の前)
11TEXTAFTERxxMNxxXYZ("xx"の後)
12
13TEXTSPLITxxABC
14 MN
15 XYZ("xx"で分割)

比較表

関数名主な用途指定値取得値備考対応バージョン
SEARCH指定文字の位置を検索(柔軟一致🔤 文字列(検索値)1️⃣ 数値(位置)❌ 大文字小文字を区別しない
✅ ワイルドカード対応
全バージョン
FIND指定文字の位置を検索(厳密一致✅ 大文字小文字を区別
❌ ワイルドカード非対応
LEFT先頭 からの文字列を抽出1️⃣ 数値(文字数)🔤 文字列全バージョン
RIGHT末尾 からの文字列を抽出
MID指定位置 からの文字列を抽出1️⃣ 数値(位置、文字数)
TEXTBEFORE指定文字の の部分を抽出🔤 文字列(検索値)🔤 文字列❌ ワイルドカード非対応Excel 2024 / 365 ~
TEXTAFTER指定文字の の部分を抽出
TEXTSPLIT指定文字で文字列のすべてを取得🔤 文字列 配列❌ ワイルドカード非対応
スピル機能使用
(展開方向は指定可能)

※ B付きの関数は非推奨

上記の関数に B の付いた関数が存在します(SEARCHB, FINDB, LEFTB, RIGHTB, MIDB)。
現状、これらの関数の使用は非推奨となっています。

使い分けの目安

文字列検索・抽出関数の使い分けの目安は、以下の通りです。

  • 文字列で検索して、位置を取得したいとき
    • あいまい検索(ワイルドカードの使用) SEARCH
    • 大文字小文字を区別 FIND
  • 文字数を指定して、文字列の一部を抽出したいとき
    • 先頭から抽出 LEFT
    • 末尾から抽出 RIGHT
    • nn番目から抽出 MID
  • 文字列で検索して、マッチした位置を基準に文字列を抽出したいとき
    • 検索値の前を抽出 TEXTBEFORE
    • 検索値の後を抽出 TEXTAFTER
    • 検索値で分割したすべてを抽出 TEXTSPLIT