本記事では、TEXTAFTER
やTEXTBEFORE
関数が使えない一部のExcelバージョンで、既存の関数のみを使って同様の機能を代用する方法を紹介します。RIGHT
関数やLEFT
関数などの基本的な関数のみを使った方法について解説しています。
結論
[対象テキスト]に特定の部分を抜き出したい文字列及びセル範囲、[区切り文字]にその前後を抜き出すための文字及びセル範囲をご自身で設定してください。
- TEXTAFTER関数の代用
=RIGHT(対象テキスト, LEN(対象テキスト)-SEARCH(区切り文字, 対象テキスト))
- TEXTBEFORE関数の代用
=LEFT(対象テキスト, SEARCH(区切り文字, 対象テキスト)-1)
代用する関数の解説
それぞれの関数が使えない場合、大まかなイメージとして、次にような代用が可能となります。
- TEXTAFTER関数: 指定した
区切り文字
の右側→RIGHT関数 - TEXTAFTER関数: 指定した
区切り文字
の左側→LEFT関数
以下で、TEXTAFTERとTEXTBEFOREそれぞれ解説します。
TEXTAFTER関数が使えない場合の代用数式
TEXTAFTER関数が使えない場合、RIGHT
・SEARCH
・LEN
の3つの関数を使用して代用することができます。おおまかな流れとしては、RIGHT
関数で区切り文字以降の文字を文字数から指定して取得する流れになります。こちらのセクションではステップごとに各関数を解説しています
- ステップ1
- ステップ2
- ステップ3
SEARCH関数で区切り文字の位置を取得
まず、SEARCH
関数を使用して区切り文字の位置番号を取得します。SEARCH
関数は一つの文字列の中で別の文字列が最初に現れる位置を返します。ここでは、対象テキスト
の中で区切り文字
が最初に現れる位置を返します。
- 構文
SEARCH(検索文字列, 対象文字列[, 開始位置])
- ステップごとの出力結果
=SEARCH("_", B1) =SEARCH("_", "2022年度_売上ファイル.xlsx") =7
- 参考
SEARCH 関数、SEARCHB 関数 – Microsoft サポート
LEN関数で文字列全体の長さを取得
次に、RIGHT
関数で区切り文字より右側の文字列を取得するための事前ステップとして、文字列全体の長さを取得します。LEN
関数は文字列の文字数を返す関数です。
- 構文
LEN(文字列)
- ステップごとの出力結果
=LEN(B1) =LEN("2022年度_売上ファイル.xlsx") =18
- 参考
LEN 関数、LENB 関数 – Microsoft サポート
RIGHT関数で区切り文字の後の文字列を取得
最後に、区切り文字の後の文字列を取得します。ここでは、RIGHT
関数を使用して”_”以降の文字列取得しています。RIGHT
関数は文字列の右端から指定された数の文字を抽出します。
- 構文
RIGHT(文字列, 文字数)
- ステップごとの出力結果
=RIGHT(B1, LEN(B1)-SEARCH("_", B1)) =RIGHT("2022年度_売上ファイル.xlsx", 18-7)) =RIGHT("2022年度_売上ファイル.xlsx", 11)) ="売上ファイル.xlsx"
- 参考
RIGHT 関数、RIGHTB 関数 – Microsoft サポート
TEXTBEFORE関数が使えない場合の代用数式
TEXTBEFORE関数が使えない場合、LEFT
・SEARCH
の2つの関数を使用して代用することができます。おおまかな流れとしては、LEFT
関数で区切り文字以前の文字を区切り文字の位置-1
で取得する流れになります。こちらのセクションではステップごとに各関数を解説しています
- ステップ1
- ステップ2
1. SEARCH関数で区切り文字の位置を取得
まず、TEXTAFTER同様にSEARCH
関数を使用して区切り文字の位置番号を取得します。SEARCH
関数は一つの文字列の中で別の文字列が最初に現れる位置を返します。ここでは、対象テキスト
の中で区切り文字
が最初に現れる位置を返します。
- 構文
SEARCH(検索文字列, 対象文字列[, 開始位置])
- ステップごとの出力結果
=SEARCH("_", B1) =SEARCH("_", "2022年度_売上ファイル.xlsx") =7
- 参考
SEARCH 関数、SEARCHB 関数 – Microsoft サポート
2. LEFT関数で区切り文字から左側の全文字列を取得
次に、区切り文字の左側、つまり、区切り文字の位置番号-1
の分だけLEFT
関数で文字列を抽出します。最終的に、”2022年度”という文字列が得られる結果となります。LEFT
関数は文字列の左端から指定された数の文字を抽出します。
- 構文
LEFT(文字列, 文字数)
- ステップごとの出力結果
=LEFT(B1, SEARCH("_", B1)-1) =LEFT("2022年度_売上ファイル.xlsx", SEARCH("_", "2022年度_売上ファイル.xlsx")-1) =LEFT("2022年度_売上ファイル.xlsx", 6) ="2022年度"
- 参考
LEFT 関数、LEFTB 関数 – Microsoft サポート
TEXTAFTER/TEXTBEFOREを使用したエクセルの処理
今回代用方法をご紹介したTEXTBEFORE
/TEXTAFTER
関数ですが、当サイトでは下記のような処理をご紹介しています。非常に便利なため、該当部分を今回ご紹介した方法に置き換えて使用してみてください。
TEXTAFTER関数の記事紹介
TEXTAFTER関数を使用している全記事の一覧はこちらからご確認いただけます。
TEXTBEFORE関数の記事紹介
TEXTBEFORE関数を使用している全記事の一覧はこちらからご確認いただけます。
おわりに
以上が、TEXTAFTER/TEXTBEFORE関数を代用する方法のご紹介になります。
ご質問やご不明点などがありましたらお気軽にコメントお待ちしております。
ご精読いただきありがとうございました。
コメント