指定した文字または文字列の前に出現するテキストを返します。 これは、TEXTAFTER 関数 の反対です。
構文
=TEXTBEFORE(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])
TEXTBEFORE 関数の構文には、次の引数があります。
text 検索対象のテキスト。 ワイルドカード文字は使用できません。 テキストが空の文字列の場合、Excel は空のテキストを返します。 必ず指定します。
delimiter 抽出する前のポイントをマークするテキスト。 必ず指定します。
instance_num テキストを抽出する区切り記号のインスタンス。 既定では、instance_num = 1 です。 負の数を指定すると、テキストの末尾から検索が開始します。 省略可能です。
match_mode テキスト検索で大文字と小文字を区別するかどうかを決定します。 既定では大文字と小文字が区別されます。 省略可能です。 次のいずれかを入力します。
-
0 大文字と小文字を区別します。
-
1 大文字と小文字を区別しません。
match_end テキストの末尾を区切り記号として扱います。 既定では、テキストは完全一致です。 省略可能です。 次のように入力します。
-
0 区切り記号をテキストの末尾に一致させないでください。
-
1 区切り記号をテキストの末尾に一致させてください。
if_not_found 一致するものが見つからない場合に返される値。 既定では、#N/A が返されます。 省略可能です。
解説
空の区切り値で検索すると、TEXTBEFORE はすぐに一致します。 前から検索するとき (instance_num が正の場合) には空のテキストが返され、末尾から検索するとき (instance_num が負の場合) にはテキスト全体が返されます。
使用例 |
結果 |
---|---|
=TEXTBEFORE("Red riding hood’s, red hood", "hood") |
Red riding |
=TEXTBEFORE("Red riding hood’s, red hood", "") |
|
=TEXTBEFORE("Red riding hood’s, red hood", "", -1) |
Red riding hood’s, red hood |
エラー
-
Excel は#VALUEを返します。 instance_num = 0 の場合、または instance_num がテキストの長さを超える場合はエラーです。
-
Excel は、区切り記号がテキストに含まれない場合に #N/A エラーを返します。
-
Excel は、instance_num がテキスト内の区切り記号の出現回数より大きい場合に #N/A エラーを返します。
使用例
次のそれぞれの表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 必要に応じて、列幅を調整してすべてのデータを表示してください。
データ |
||
赤ずきんちゃんの赤いフード |
||
赤ずきんちゃんの赤いフード |
||
数式 |
結果 |
|
=TEXTBEFORE(A2,"Red") |
少し |
|
=TEXTBEFORE(A3,"Red") |
#N/A |
|
=TEXTBEFORE(A3,"red",2) |
赤ずきんちゃんの赤いフード |
|
=TEXTBEFORE(A3,"red",-2) |
少し |
|
=TEXTBEFORE(A3,"Red",FALSE) |
#N/A |
|
=TEXTBEFORE(A3,"red",3) |
#N/A |
データ |
|
マルクス アウレリウス |
|
ソクラテス |
|
イマヌエル カント |
|
数式 |
結果 |
=TEXTBEFORE(A2," ",,,1) |
マルクス |
=TEXTBEFORE(A3," ",,,0) |
#N/A |
=TEXTBEFORE(A3," ",,,1) |
ソクラテス |
=TEXTBEFORE(A4," ",,,1) |
イマヌエル |