ラベルラベル

文字列入門

TEXTBEFORE関数を見て理解する

指定した区切り文字の前にある文字列を取り出す関数です。

3つのポイント

  1. 対象の文字列と区切りを確認する
  2. 何番目の区切りかを指定する
  3. 区切りの前にある文字列を取り出す
例題Excel仕様

区切り文字の前を取り出す

サンプル数式

  • 対象の文字列
  • 区切り文字
  • 区切りの出現回数

区切りと抽出範囲

東京-大阪-京都

いまの結果:

東京
計算結果
結果セル:D2
入力・条件:3項目
  • 対象の文字列A2:「東京-大阪-京都」
  • 区切り文字B2:「-」
  • 区切りの出現回数C2:1
この結果になる理由

前から1番目の区切り「-」の前を取り出します。 D2に文字列「東京」を表示します。

サンプルデータ

文字列や出現回数を変えてみよう

※ Excel と Google スプレッドシートで結果や挙動が異なる場合、Excel の仕様を基準にしています。

「区切り文字の前を取り出す」のサンプルデータ。引数番号は正式引数と教材要素の対応、小さな角丸数字は処理順を表します。
ABCD
1対象の文字列区切り文字区切りの出現回数結果
2東京
対象の文字列区切り文字区切りの出現回数結果セル
①・②・③ 正式引数 / 教材要素1–4 処理の流れ

A2、B2、C2に値を入力すると、結果と処理順が変わります。

3つの引数

色付きの丸数字は、サンプル数式と引数ガイドで同じ引数を示しています。表にも同じ番号があれば、その引数で指定しているセルを示します。

  1. A2表のセル: A2

    処理する文字列です。数字や絵文字を含む文字列も扱います。

  2. B2表のセル: B2

    前後を取り出す目印となる文字です。ワイルドカードではなく文字そのものを探します。

  3. C2表のセル: C2

    正の整数で前から、負の整数で後ろから何番目かを指定します。

この数式を日本語にすると

A2をB2の「-」で探し、前からC2の1番目の区切りの前をD2に表示します。

この説明は、最初に表示されているサンプルデータをもとにしています。入力値を変更しても説明文は変わりません。

処理の流れ

手順1〜4を順番に確認しましょう。表内の小さな角丸数字は、対応する手順を示します。

  1. 対象の文字列を確認する

    A2

    対象の文字列: 「東京-大阪-京都」。

  2. 区切り文字を確認する

    B2

    区切り文字: 「-」。

  3. 区切りの出現回数を確認する

    C2

    区切りの出現回数: 「1」。

  4. 区切りの前後を取り出す

    D2

    前から1番目の区切り「-」の前を取り出します。 D2に文字列「東京」を表示します。

対応アプリ

  • Excel

関数自体が対応するアプリです。教材例の数式や再計算が、両アプリで同じように動くことを保証するものではありません。

この例の注意点

  • 対象の文字列と区切り文字は必須です。出現回数の省略時は1、大文字・小文字と文字列境界の指定の省略時は0です。代替値の省略時は#N/Aエラーです。
  • 出現回数が正なら前から、負なら後ろから数えます。0は#VALUE!エラー、区切りの出現回数不足は#N/Aエラーになります。
  • 大文字・小文字の指定は0で区別、1で無視します。この教材の無視検索は実測済みのASCII文字に限ります。
  • 境界の指定が1なら前方検索では末尾、後方検索では先頭も区切りに数えます。
  • 空の区切りは前方検索で先頭、後方検索で末尾に一致します。
  • 見つからないときの代替値は、数値や論理値も文字列として返します。文字列の#N/Aと実エラーは区別します。
  • 文字列の数字やエラー表記を保持するには先頭にアポストロフィを付けます。'#N/Aは通常文字列、未引用の#N/Aは実エラーです。
  • 区切り文字や出現回数のセルに実Excelエラーがある場合、通常の引数指定ではエラーが結果へ伝わります。複数のエラーが同時にある場合の優先順位は未確認です。
  • セルを消す操作は空白セルへの変更であり、数式の引数省略にはなりません。空白・文字列・論理値のオプション変換、複合エラーや重なる区切りの数え方など未実測の条件は対象外です。
  • 対応はExcel for the webの実測を基準にしています。Google スプレッドシートでの対応や挙動は未確認です。

一般構文

対応:Excel / Sheetsは未確認 ・ 構文:Sheets構文は未確認

=TEXTBEFORE(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])

[] は省略できる引数です。

省略時

instance_num
→ 1省略すると前から1番目を使います。
match_mode
→ 0省略すると大文字と小文字を区別します。
match_end
→ 0省略すると文字列の境界を区切りに含めません。
if_not_found
省略して区切りが見つからない場合は#N/Aエラーを返します。
公式資料・確認範囲

公式資料

実機確認

  • Excel for the web計算結果・入力の扱い・エラーを確認済み

未確認

対応状況・構文・計算結果・入力の扱い・エラー・配列展開

次に学ぶ関数

SUBSTITUTE

区切り文字を使った抽出を学んだら、SUBSTITUTEで指定した文字列を置き換える方法も体験しましょう。

次に学ぶ