TEXTBEFORE関数は、文字列から区切り文字の前部分だけ抜き出す関数である。メールアドレスや住所などの一部分を抜き出すのに便利な関数だ。複数の区切り文字を指定することもできる。
目次
ExcelのTEXTBEFORE関数の使い方が分からない、という方もいるのではないだろうか。TEXTBEFORE関数は、文字列の一部分を抜き出せる関数の1つである。
本記事では、TEXTBEFORE関数の使い方について解説する。TEXTBEFORE関数で文字列を切り取る方法や、区切り文字がなくてエラーが出る場合の対処法についてまとめた。
TEXTBEFORE関数とは?
TEXTBEFORE関数は、区切り文字を指定することで、その文字よりも手前部分のみを抜き出して表示できる関数である。
たとえば「aaaa@bbb.com」というメールアドレスがある場合、「@」を区切り文字と指定すれば、「@」よりも前の部分である「aaaa」を抜き出すことができる。
TEXTBEFORE関数を使えるのは、Microsoft 365に加入している場合である。TEXTBEFORE関数はMicrosoft 365で追加された新しい関数だ。
■TEXTBEFORE関数の構文
TEXTBEFORE関数の基本的な構文は次のとおり。
- =TEXTBEFORE({文字列},{区切り文字},{区切り位置},{オプション1},{オプション2},{オプション3})
基本的には、文字列と区切り文字を指定するだけで良い。指定した区切り文字で、文字列を区切ることが可能だ。
3つ目の引数には、区切り位置を指定する。同じ文字が複数存在している場合、何番目にある文字を区切り文字とみなすか、を指定できる。
それ以降のオプションは、指定することで、次のことが可能になる。
- オプション1:「1」を指定すれば、区切り文字の大文字と小文字を区別しなくなる
- オプション2:「1」を指定すれば、文字列の末尾を区切り文字とみなせる
- オプション3:文字列を指定すれば、区切り文字がない場合に返す値を設定できる
TEXTBEFORE関数の使い方
TEXTBEFORE関数の使い方について解説する。
TEXTBEFORE関数で次の5つを行う方法を順番に見ていこう。
- 特定文字列よりも前を取り出す
- 特定の文字列以前を取り出す
- 複数の特定文字列を指定する
- 最後の特定文字列より前を取り出す
- 特定文字列の大文字と小文字を区別しない
■1.特定文字列よりも前を取り出す
まず、TEXTBEFORE関数の1番基本的な利用方法を解説する。
以下では、「=TEXTBEFORE(A2,”県”)」としている。2つ目の引数には「県」とある。A2の文字列を「県」で区切ろうとしている。

実行すると、A2の文字列が「県」によって区切られ、「県」よりも前の「神奈川」のみが表示される。このように、特定文字列よりも前を取り出せるのが、TEXTBEFORE関数だ。

他の行にも関数を反映させると次のようになる。A6は「東京都」となっており、区切り文字が存在しないため、#N/Aエラーが表示される。このエラーの解決策は後ほど解説する。

■2.特定の文字列以前を取り出す
続いて、特定の文字列以前を取り出す方法を解説する。
以下では「=TEXTBEFORE(A2,”県”)&”県”」としている。TEXTBEFORE関数で抜き出した結果に「県」を加えている。「&」は文字列を結合するための記号である。

実行すると「神奈川県」と表示される。「県」を含めた都道府県が取得できた。

他の行にも関数を反映させると次のようになる。

■3.複数の特定文字列を指定する
区切り文字は1つではなく、2つ以上指定することも可能だ。
以下では「=TEXTBEFORE(A2,{“県”,”都”})」としている。「県」と「都」の2つの区切り文字を指定した。

実行すると、「神奈川」と表示される。

他の行にも関数を反映させる。今回は「都」も区切り文字と設定したため、A6の文字列も問題なく区切られ、「東京」と表示されている。

■4.最後の特定文字列より前を取り出す
3つ目の引数に「-1」を指定することで、特定文字列が複数個ある場合に、最後の文字列を区切り文字とみなすことができる。
以下では「=TEXTBEFORE(A2,” ”,-1)」としている。3つ目の引数に「-1」を指定している。最後の半角スペースを区切り文字とみなす。

実行すると、最後の半角スペースが区切り文字とみなされ、「I am」のみ表示された。

■5.特定文字列の大文字と小文字を区別しない
続いて、特定文字列の大文字と小文字を区別しないで、両方とも区切り文字とみなす方法を解説する。TEXTBEFOREはデフォルトだと、大文字と小文字を区別する。
以下では「=TEXTBEFORE(A2,”A”)」としている。「A」を区切り文字としている。

実行すると「A」で文字列が区切られ、前の部分の「I am」だけが表示された。

では、4つ目の引数に「1」を指定するとどうなるのか。
以下では「=TEXTBEFORE(A2,”A”,,1)」としている。

実行すると、「a」と「A」が区別されず、両方とも区切り文字とみなされている。そのため、最初の「a」で文字列が区切られている。
このように、4つ目の引数(オプション1)に「1」を指定することで、大文字と小文字を区別しないようにできる。

区切り文字が見つからないときに返す値を設定する方法
以下は、「1.特定文字列よりも前を取り出す」の項目で出力した結果だが、最後に「#N/A」が出てしまっている。「#N/A」が出る原因は、A6には「県」がないためだ。
このように、区切り文字が見つからない場合には「#N/A」が出てしまうが、「#N/A」ではなく、エラーメッセージが出るようにする方法がある。

以下では「=TEXTBEFORE(A2,”県”,,,,”エラー”)」としている。6つ目の引数(オプション3)に、エラーメッセージを入力している。

実行すると、1行目は通常通り、区切り文字よりも前の文字列が表示される。

6行目には「#N/A」ではなく「エラー」と表示されている。
このように、6つ目の引数(オプション3)に文字列を入力することで、エラー時のメッセージを指定できる。

関連記事:Excelでエラー表示しない方法は?「#N/A」などよく見るエラーの原因と対処法
まとめ
本記事では、TEXTBEFORE関数とはなにかについて解説した。最後に、TEXTBEFORE関数の基本的な使い方についてみていこう。
- 特定文字列よりも前を取り出す
例:=TEXTBEFORE(A2,”県”) - 特定の文字列以前を取り出す
例:=TEXTBEFORE(A2,”県”)&”県” - 複数の特定文字列を指定する
例:=TEXTBEFORE(A2,{“県”,”都”}) - 最後の特定文字列より前を取り出す
=TEXTBEFORE(A2,” ”,-1) - 特定文字列の大文字と小文字を区別しない
例:=TEXTBEFORE(A2,”A”,,1) - 区切り文字がない場合にエラーメッセージを返す
例:=TEXTBEFORE(A2,”県”,,,,”エラー”)
TEXTBEFORE関数は、区切り文字よりも前の部分を抜き出して表示する関数だ。汎用性が高い関数なので、覚えておくと良いだろう。
関連記事:Excelで一部のデータを取り出す時に役立つ「MID関数」の使い方【画像付き】
関連記事:文字列の一部分を取り出す便利な「LEFT関数」の使い方
構成/編集部







DIME MAGAZINE











