ここではTEXTBEFORE関数とTEXTAFTER関数を使って、指定した区切り文字を境界にして、前側・後側の文字列を取り出す方法について紹介します。
※TEXTBEFORE関数およびTEXTAFTER関数は、Microsoft 365、Excel 2021以降で使用できます。

TEXTBEFORE関数とは

TEXTBEFORE関数とは、指定した文字または文字列の前に出現するテキストを返す関数です。

構文

=TEXTBEFORE(文字列, 区切り文字, [区切りの出現番号], [大文字小文字の区別], [末尾を区切りとみなすか], [見つからない場合の値])
  • 文字列
    抽出対象となる文字列、またはセル参照
  • 区切り文字
    前後を分けるための文字(例:”-“、”/”、”@” など)
  • [区切りの出現番号]
    何番目の区切り文字を基準にするか(既定は1で最初の区切り文字を使う)
  • [大文字小文字の区別]
    区切り文字の検索で大文字小文字を区別するか(既定は区別する)
  • [末尾を区切りとみなすか]
    文字列の末尾を区切りとして扱うか(既定は扱わない)
  • [見つからない場合の値]
    区切り文字が見つからないときに返す値(既定は #N/A)


TEXTAFTER関数とは

TEXTAFTER関数とは、指定された文字または文字列の後に出現するテキストを返す関数です。

構文

=TEXTAFTER(文字列, 区切り文字, [区切りの出現番号], [大文字小文字の区別], [末尾を区切りとみなすか], [見つからない場合の値])
  • 文字列
    抽出対象となる文字列、またはセル参照
  • 区切り文字
    前後を分けるための文字(例:”-“、”/”、”@” など)
  • [区切りの出現番号]
    何番目の区切り文字を基準にするか(既定は1で最初の区切り文字を使う)
  • [大文字小文字の区別]
    区切り文字の検索で大文字小文字を区別するか(既定は区別する)
  • [末尾を区切りとみなすか]
    文字列の末尾を区切りとして扱うか(既定は扱わない)
  • [見つからない場合の値]
    区切り文字が見つからないときに返す値(既定は #N/A)


TEXTBEFORE関数の使い方

実務でよく使う TEXTBEFORE関数の使い方の例を挙げてみます。

ファイル名から拡張子を除去する

文字列:ConsoleApp1.vbproj
式:=TEXTBEFORE(A1, “.”)
結果:ConsoleApp1

メールアドレスからユーザー名を取り出す

文字列:user01@sample.com
式:=TEXTBEFORE(A1, “@”)
結果:user01

エラーメッセージからエラーコードを取り出す

文字列:ORA-12541: TNS: リスナーがありません
式:=TEXTBEFORE(A1, “:”)
結果:ORA-12541


TEXTAFTER関数の使い方

実務でよく使う TEXTAFTER関数の使い方の例を挙げてみます。

ファイル名から拡張子だけを取り出す

文字列:ConsoleApp1.vbproj
式:=TEXTAFTER(A1, “.”)
結果:vbproj

メールアドレスからドメイン名を取り出す

文字列:user01@sample.com
式:=TEXTAFTER(A1, “@”)
結果:sample.com

エラーメッセージからエラーメッセージを取り出す

文字列:ORA-12541: TNS: リスナーがありません
式:=TRIM(TEXTAFTER(A1,”:”))
結果:TNS: リスナーがありません


TEXTBEFORE関数と TEXTAFTER関数を組み合わせた使い方

実務でよく使う TEXTBEFORE関数と TEXTAFTER関数を組み合わせた使い方の例を挙げてみます。

ファイルが格納されているフォルダ名だけを取り出す

文字列:C:\inetpub\wwwroot\iisstart.htm
式:=TEXTBEFORE(TEXTAFTER(A1, “\”, -2), “\”)
結果:wwwroot

1. TEXTAFTER(A1, “\”, -2)
→ 後ろから2番目の「\」の後ろを取得
→ wwwroot\iisstart.htm

2. TEXTBEFORE(…, “\”)
→ 最初の「\」の前を取得
→ wwwroot

ファイルパスからファイル名(拡張子なし)を取り出す

文字列:C:\inetpub\wwwroot\iisstart.htm
式:=TEXTBEFORE(TEXTAFTER(A1, “\”, -1), “.”)
結果:iisstart

1. TEXTAFTER(A1, “\”, -1)
→ 最初の「\」の後ろを取得
→ iisstart.htm

2. TEXTBEFORE(…, “.”)
→ 最初の「.」の前を取得
→ iisstart

ファイルパスから最初のフォルダ名を取り出す

文字列:C:\inetpub\wwwroot\iisstart.htm
式:=TEXTBEFORE(TEXTAFTER(A1, “\”), “\”)
結果:inetpub

1. TEXTAFTER(A1, “\”)
→ 最初の「\」の後ろを取得
→ inetpub\wwwroot\iisstart.htm

2. TEXTBEFORE(…, “.\)
→ 最初の「\」の前を取得
→ inetpub


以上、TEXTBEFORE関数とTEXTAFTER関数を使って、指定した区切り文字を境界にして、前側・後側の文字列を取り出す方法について解説しました。