
エクセルで「特定の文字より前(または後ろ)」を抽出できる、TEXTBEFORE/AFTER関数の使い方をご紹介します。これらの関数が使えない場合に、「REPLACE関数」で代用する方法も解説しているので、ぜひ参考にしてみてください。
TEXTBEFORE/AFTER関数を使う(Microsoft 365)
特定の文字より前を抽出する(TEXTBEFORE)

「テキスト」から、指定した「区切り文字(例:@)」より前の部分を返します。
例:=TEXTBEFORE(A2,"@")
💡 ポイント:区切り文字はダブルクォーテーション("")で囲みます。
TEXTBEFORE関数の引数:(テキスト, 区切り文字, [区切り位置], [一致モード], [末尾一致], [見つからない場合])
特定の文字より後ろを抽出する(TEXTAFTER)

「テキスト」から、指定した「区切り文字(例:@)」より後ろの部分を返します。
例:=TEXTAFTER(A2,"@")
💡 ポイント:区切り文字はダブルクォーテーション("")で囲みます。
TEXTAFTER関数の引数:(テキスト, 区切り文字, [区切り位置], [一致モード], [末尾一致], [見つからない場合])
📖 その他の引数:
全部で6つの引数がありますが、基本的には最初の2つだけで動きます。
- テキスト:検索対象の文字列です。
- 区切り文字:どの文字より前(または後ろ)を抽出するかを指定します。
- [区切り位置]:区切り文字が複数ある場合、何番目の文字を基準にするか指定します。
- [一致モード]:大文字と小文字を区別するかを指定します。
- 0(省略時):厳密に区別する
- 1:区別せず、同じ文字として扱う
- [末尾一致]:区切り文字が見つからないとき、テキストの終わりを「区切り文字」とみなすかどうかを指定します。
- 0(省略時):見つからなければエラーにする
- 1:区切り記号をテキストの末尾に一致させる
- [見つからない場合]:区切り文字が見つからない場合に、エラーの代わりに表示する値を指定します。(例:
"")
REPLACE関数を使う(2021以前)
特定の文字より前を抽出する

開始位置(1文字目)から、特定の文字(@)の位置までを「空白」に置き換えることで、それ以降の文字を残します
例:=REPLACE(A2, 1, SEARCH("@", A2), "")
REPLACE関数の引数:(文字列, 開始位置, 文字数, 置換文字列)
SEARCH関数の引数:(検索文字列,対象,[開始位置])
【数式の解説】
- SEARCH関数:「
@」の位置(6文字目)を数字で取得します。 - REPLACE関数:開始位置(1文字目)から、6文字を空白(
"")に置換します。
特定の文字より後ろを抽出する

特定の文字(@)から後ろの文字を「空白」に置き換えて、それより前の文字を残します。
例:=REPLACE(A2, SEARCH("@", A2), 100, "")
💡 ポイント:第3引数の「100」には、削除したい文字数より大きい適当な数字を指定します。
【数式の解説】
- SEARCH関数:「
@」の位置(6文字目)を数字で取得します。 - REPLACE関数:開始位置(6文字目)から、100文字を空白(
"")に置換します。