オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Excel】簡単!カッコ内の文字列を抽出する方法 ~TEXTBEFORE、TEXTAFTER関数でカッコ内の文字列を簡単に抽出する方法~

本記事では、TEXTBEFORE、TEXTAFTER関数を使ってカッコ内の文字列を抽出する方法を紹介します。
本方法では、特定の文字に囲まれた文字列の抽出も可能です。

TEXTBEFORE、TEXTAFTER関数を使ってカッコ内の文字列を抽出する方法

「B2」セル内の「(」、「)」に囲まれた文字列を抽出するためには、以下の関数で取得が可能です。

=TEXTBEFORE(TEXTAFTER(B2,"("),")")

TEXTBEFORE、TEXTAFTER関数でカッコ内の文字を抽出

以下の画像の通り、カッコの種類を変えた「【」、「】」に囲まれた文字列や、特定の文字「い」、「け」に囲まれた文字列も抽出可能です。

=TEXTBEFORE(TEXTAFTER(B2,""),"")
=TEXTBEFORE(TEXTAFTER(B3,""),"")

カッコ内の文字列、特定の文字に囲まれた文字列を抽出



注意点

以下画像のNo7、No8のように2重以上のカッコや、元データのカッコに規則性がないと、意図した値を取得できない場合があります。

注意点 No7、No8

TEXTBEFOR関数、TEXTAFTER関数について

今回の記事で紹介したTEXTBEFORE関数TEXTAFTER関数について、簡単に解説します。

TEXTBEFORE関数、TEXTAFTER関数

以下の関数を元に解説します。
=TEXTBEFORE(TEXTAFTER(B2,"("),")")


まず、以下のようにTEXTAFTER関数で「(」の後の文字列を抽出します。
=TEXTAFTER(B2,"(")

「1(56abc)e567」から「56abc)e567」を抽出しています。


次に、TEXTBEFORE関数で「)」より前の文字列を抽出します。
=TEXTBEFORE(B2,")")

TEXTAFTER関数で抽出した「56abc)e567」から「56abc」を抽出しています。

最後に

FIND関数MID関数でカッコ内の文字列を抽出する方法を以下記事にしてます。
TEXTBEFORE関数TEXTAFTER関数という比較的新しい関数だと、よりシンプルな記述でカッコ内の文字列を抽出できることに驚きでした。
auroralights.jp



以上、お読みいただきありがとうございました。