-
Home »
-
エクセル関数一覧表 »
-
Excel関数の目次 »
-
区切り文字の前後の文字列を取り出すTEXTBEFORE関数・TEXTAFTER関数の使い方
スポンサードリンク
(追記) (追記ここまで)
(追記) (追記ここまで)
更新:2025年2月22日;作成:2022年9月2日
区切り文字の前の文字列を取り出す
テキスト ビフォア
=TEXTBEFORE(text,delimiter,[instance_num],[match_mode],[match_end],[if_not_found])
- TEXTBEFORE関数・TEXTAFTER関数がExcel for Microsoft 365 で使用することができるようになりました。(2022年9月2日に確認しました)
Excel2024(2024年10月2日から市販されました)でも使用できるようになりました。
TEXTBEFORE関数の引数
- 関数の引数は現時点では英語表記になっています。
TEXTBEFORE関数の引数
引数
意味
text
文字列
必須
検索対象のテキスト
delimiter
区切り文字
必須
抽出する前のポイントをマークするテキスト
区切り文字
instance_num
区切り位置
省略可
区切り文字が複数ある時、前からの順番
既定では、instance_num = 1 です。
負の数を指定すると、テキストの末尾から検索が開始します。
match_mode
一致モード
省略可
テキスト検索で大文字と小文字を区別するかどうかを決定します
0または省略:大文字と小文字を区別します。
1:大文字と小文字を区別しません
match_end
末端で一致する
省略可
テキストの末尾を区切り記号として扱います
0または省略:一致して終了しない
1:一致して終了
if_not_found
見つからないとき
省略可
一致するものが見つからない場合に返される値。
既定では、#N/A が返されます
- 【使用例】 もっとも一般的な例で・・・TEXTBEFORE関数で姓を取り出すことができます。
区切り文字に " "(半角のスペース)を設定して、半角スペースより前の文字列を取り出します。
C2セルに =TEXTBEFORE(B2:B7," ") と入力します。
- 区切り文字が半角スペースと全角スペースと混在している場合は、区切り文字に2つを指定します。
=TEXTBEFORE(B2:B7," ") では 半角のスペースを区切り文字に設定しています。
半角のスペースがない文字列(4行目と5行目)ではエラー #N/A が返されます。
↓
=TEXTBEFORE(B2:B7,{" "," "}) と全角スペースも併せて指定することができます。
TEXTBEFORE関数の引数のinstance_numを指定する
- 区切り文字が複数ある場合、何番目の区切り文字で文字列を取り出すかを指定することができます。
=TEXTBEFORE(B2,"-",3) とすると、3つ目の"-"より前の文字列を取り出すことができます。
=TEXTAFTER(B2,"-",3) とすると、3つ目の"-"より後の文字列を取り出すことができます。
- 区切り位置の順番を負の値で指定すると、下図のように後ろから区切り文字の位置を検索しています。
TEXTBEFORE関数の引数のmatch_modeを指定する
- テキスト検索で大文字と小文字を区別するかどうかを決定します
0または省略:大文字と小文字を区別します。
1:大文字と小文字を区別しません
区切り文字に d を指定していますので、引数の match_mode に 0を指定すると、大文字と小文字を区別しますので、小文字の d は見つからないので #N/A となります。
引数の match_mode に 1 を指定すると、大文字と小文字の区別をしないので 大文字のDより前の文字列が抽出されます。
TEXTBEFORE関数の引数のmatch_endを指定する
- ヘルプには以下のように書かれているのですが?
「テキストの末尾を区切り記号として扱います。 既定では、テキストは完全一致です。 省略可能です。
次のいずれかを入力します。
0:区切り記号をテキストの末尾に一致させないでください。
1: 区切り記号をテキストの末尾に一致させてください。」
- match_endは下図のようなヒントが表示されます。
0:区切り記号に一致が見つからなかった場合は、#N/Aを返します
1:区切り記号がテキストの末尾に一致させる
といったヒントが表示されます。
- =TEXTBEFORE(B2,"z",,,0) と区切り文字に対象の文字列に含まれていない 「z」を指定しています。
match_endに 0 を指定すると、区切り文字がテキスト内に無いので、#N/A が返されている。
match_endに 1 を指定すると、区切り文字がテキスト内に無いのでテキストの全てが表示される。
といったことかな?・・・といった感じです。さて、この解釈があっているのかは不明です。
TEXTBEFORE関数の引数のif_not_foundを指定する
- =TEXTBEFORE(B2:B7," ") では 半角のスペースを区切り文字に設定しています。
半角のスペースがない文字列(4行目と5行目)ではエラー #N/A が返されます。
- 一致するものが見つからない場合に表示されるエラー #N/A を "-"(ハイフン)に置き換えたいときは、
=TEXTBEFORE(B2:B7," ",,,,"-") と引数「if_not_found」を指定します。
区切り文字の前の文字列を取り出す
テキスト アフター
=TEXTAFTER(text,delimiter,[instance_num],[match_mode],[match_end],[if_not_found])
TEXTAFTER関数の引数
- 関数の引数は現時点では英語表記になっています。
TEXTAFTER関数の引数
引数
意味
text
テキスト
必須
検索対象のテキスト
delimiter
区切り文字
必須
抽出する前のポイントをマークするテキスト
区切り文字
instance_num
区切り位置
省略可
区切り文字が複数ある時、前からの順番
既定では、instance_num = 1 です。
負の数を指定すると、テキストの末尾から検索が開始します。
match_mode
一致モード
省略可
テキスト検索で大文字と小文字を区別するかどうかを決定します
0または省略:大文字と小文字を区別します。
1:大文字と小文字を区別しません
match_end
末端で一致する
省略可
テキストの末尾を区切り記号として扱います
0または省略:一致して終了しない
1:一致して終了
if_not_found
見つからないとき
省略可
一致するものが見つからない場合に返される値。
既定では、#N/A が返されます
- 【使用例】もっとも一般的な例で・・・TEXTAFTER関数で姓と名を分けて取り出すことができます。
名は区切り文字に " "(半角のスペース)を設定して、半角スペースより後の文字列を取り出します。
C2セルに =TEXTAFTER(B2:B7," ") と入力します。
TEXTAFTER関数の引数のinstance_numを指定する
- 区切り文字が複数ある場合、何番目の区切り文字で文字列を取り出すかを指定することができます。
=TEXTAFTER(B2,"-",3) とすると、3つ目の"-"より後の文字列を取り出すことができます。
- 区切り位置の順番を負の値で指定すると、下図のように後ろから区切り文字の位置を検索しています。
TEXTAFTER関数ではその区切り文字の後ろの文字列を取り出します。
TEXTAFTER関数の引数のmatch_modeを指定する
- テキスト検索で大文字と小文字を区別するかどうかを決定します
0または省略:大文字と小文字を区別します。
1:大文字と小文字を区別しません
- 区切り文字に d を指定していますので、引数の match_mode に0を指定すると、大文字と小文字を区別しますので、小文字の d は見つからないので #N/A
となります。
引数の match_mode に 1 を指定すると、大文字と小文字の区別をしないので 大文字のDより後の文字列が抽出されます。
TEXTAFTER関数の引数のif_not_foundを指定する
- =TEXTAFTER(B2:B7," ") では 半角のスペースを区切り文字に設定しています。
半角のスペースがない文字列(4行目と6行目)ではエラー #N/A が返されます。
- 一致するものが見つからない場合に表示されるエラー #N/A を "-"(ハイフン)に置き換えたいときは、
=TEXTAFTER(B2:B7," ",,,,"-") と引数「if_not_found」を指定します。
スポンサードリンク
(追記) (追記ここまで)
(追記) (追記ここまで)
Home »
エクセル関数一覧表 » 区切り文字の前後の文字列を取り出すTEXTBEFORE関数・TEXTAFTER関数の使い方
PageViewCounter
Counter
Since2006/2/27