エクセルTEXTBEFORE関数をマスター!複数区切りや代用、使えない時の注意点を徹底解説!

この記事で分かること
  • Textbefore関数の基本的な使い方と引数の意味
  • 区切り文字が複数回出現する場合のデータの取り出し方
  • Textbefore関数が使えない環境での代替関数
  • Textbefore関数を使う際の注意点(特に空白と0の扱い)
  • TextbeforeとTextafterの違い

Textbefore関数の基本的な使い方と構造

まずは、Textbefore関数の基本的な使い方と、その構造を見ていきましょう。

Textbefore関数の構文(書き方)

Textbefore関数は、2021年以降のMicrosoft 365(サブスクリプション版)またはExcel 2021でのみ利用可能です。

Textbefore関数の構文

=TEXTBEFORE(文字列, 区切り文字, [出現回数], [一致モード], [末尾一致], [見つからない場合の値])

文字列(必須) :処理の対象となる文字列(セル)

区切り文字(必須) :どこまでを取り出すかの目印となる文字

出現回数(任意):区切り文字が何回目に出現したところで区切るか

一致モード(任意):区切り文字の大文字・小文字を区別するか

末尾一致(任意):文字列の末尾に区切り文字がある場合の扱い

見つからない場合の値(任意):区切り文字が見つからなかった場合に返す値

この中で、まず覚えるべきは最初の2つの引数(文字列と区切り文字)です。

これだけで大抵の作業はこなせますよ!

例題:最もシンプルなデータ抽出

まずは、最もシンプルな例で使い方を確認しましょう。

【例題データ】

【目的】

区切り文字であるハイフン – の前にある果物の名前(「りんご」「バナナ」「みかん」)を抽出したい。

【入力する数式】

セル B2 に以下の数式を入力します。

=TEXTBEFORE(A2, “-“)

【結果】

結果
解説
  1. 文字列として A2 を指定。
  2. 区切り文字として “-“ を指定。(文字列なので必ずダブルクォーテーションで囲みます
  3. A2 の「りんご-赤」から、最初の より前の「りんご」が抽出されました。

Textbefore関数の応用:複数回出現する区切り文字への対応

実務では、一つの文字列の中に区切り文字が複数回出現することがよくありますよね。そのときに活躍するのが、3つ目の引数【出現回数】です。

例題:2回目、または最後の区切り文字で区切る

【例題データ】

【目的】

  1. 2回目 より前の文字列(例:「東京都-千代田区」)を抽出したい。(B列)
  2. 最後 より前の文字列(例:「東京都-千代田区-」)を抽出したい。(C列)

【入力する数式】

2回目の区切り文字まで(B列)

=TEXTBEFORE(A2, “-“, 2)

最後の区切り文字まで(C列)

=TEXTBEFORE(A2, “-“, -1)

【結果】

解説
  • Instance_num正の数 (1, 2, 3…) を指定すると、先頭から数えてその回数目の区切り文字で区切ります。
  • Instance_num負の数 (-1, -2, -3…) を指定すると、末尾から数えてその回数目の区切り文字で区切ります。-1 は「最後の区切り文字」を意味するため、非常に便利です。

Textbefore関数が使えない場合の代替関数

もしあなたが使用しているエクセルがTextbefore関数に対応していない場合は既存の関数を組み合わせることで同じ処理を実現できます

主な代替関数は、FIND関数LEFT関数を組み合わせる方法です。

例題:LEFT関数とFIND関数でTextbeforeを代用

【例題データ】

【目的】

最初の – より前の文字列(「M」「L」)を抽出したい。

【入力する数式】

セル B2 に以下の数式を入力します。

=LEFT(A2, FIND(“-“, A2) – 1)

【結果】

結果
解説
  1. FIND(“-“, A2):文字列 A2 の中で、区切り文字であるハイフン 何文字目にあるかを調べます。(例: A2 では 2番目)
  2. FIND(…) – 1:ハイフンの位置から 1 を引くことで、抽出したい文字数(ハイフンの直前まで)を求めます。(例: 2 – 1 = 1 文字)
  3. LEFT(A2, …):文字列 A2左側から、求めた文字数分だけ抽出します。

でんちゃん
でんちゃん

FIND関数最初の区切り文字の位置しか返せないため、この代用方法では、Textbefore関数出現回数を指定するような複雑な処理はできないことに注意してください。


Textbefore関数を使う上での注意点

Textbefore関数はとても便利ですが、実務で使う上で知っておきたい注意点がいくつかあります。

Textbefore関数は「空白」や「0」を除外しない

Textbefore関数は、基本的に抽出された文字列をそのまま返します。そのため、もし元の文字列に空白(スペース)や数字の 0が含まれていても、そのまま結果として表示されます

【例題データ】

【入力する数式】

=TEXTBEFORE(A2, “-“)

【結果】

セル B2 の結果には、目に見えない空白が先頭に含まれている可能性があります。

もし、抽出した結果の前後の空白を除去したい場合は、Textbefore関数全体をTRIM関数で囲んであげましょう。

=TRIM(TEXTBEFORE(A2, “-“))

TextbeforeとTextafter関数の違い

Textbefore関数Textafter関数は、機能が対になっています。

関数名処理内容抽出される部分
Textbefore区切り文字のの文字列を抽出りんご-赤 → りんご
Textafter区切り文字のの文字列を抽出りんご-
でんちゃん
でんちゃん

どちらも構文(引数)は全く同じなので、一度覚えれば両方使えるようになりますよ!

Textbefore関数が使えない環境と対処法

繰り返しになりますが、Textbefore関数比較的新しい関数です。

  • 使える環境: Microsoft 365(サブスクリプション版)、Excel 2021
  • 使えない環境: Excel 2019以前のバージョン

もし職場や学校でExcel 2019以前を使っている場合は、残念ながらTextbefore関数は使えません。

この場合は、「3. Textbefore関数が使えない場合の代替関数」で説明した、LEFT関数とFIND関数を組み合わせる方法で対応しましょう。


まとめ:Textbefore関数でデータ抽出を効率化!

今回は、エクセルのTextbefore関数について、基本的な使い方から、応用編、使えない場合の代替手段を解説しました!

Textbefore関数は、特に定型的な文字列データから一部を抜き出す作業において、これまでの関数(LEFTFINDなど)を組み合わせるよりも圧倒的にシンプル分かりやすい数式で処理できます。

この記事の重要ポイント
  • 基本構文: =TEXTBEFORE(文字列, 区切り文字)
  • 複数区切り: 3番目の引数で出現回数を指定(例: 2 や -1)。
  • 代替手段: 使えない場合は=LEFT(文字列, FIND(区切り文字, 文字列) – 1)で代用。
  • 注意点: 抽出結果に不要な空白が含まれる場合はTRIM関数を併用する。
この記事を書いた人
でんちゃん

一児の父。人事として6年、採用・教育・労務・人事制度などを経験してきました。これまで200名ほどの方と面接を実施してきたので就職・転職に関するノウハウがあります。またExcelを用いたデータ分析が得意です。
娘が生まれ日々のすさまじい成長を目の当たりにしています。
人事やExcel、子育てに関してのお役立ち情報を伝えるブログを作っていきます!

でんちゃんをフォローする
Excel
シェアする
でんちゃんをフォローする

コメント

タイトルとURLをコピーしました