Excel。文字を区切る前のテキストを返すのがTEXTBEFORE関数です。
<関数辞典:TEXTBEFORE関数>
TEXTBEFORE関数
読み方: テキストビフォー
分類: 文字列操作
TEXTBEFORE(テキスト,区切り記号,インスタンス番号,一致モード,末尾一致,一致しなかった場合)
文字を区切る前のテキストを返す。
【Excel・Word・PowerPoint・Access】あなたの「困った」を解決!10年以上の経験が詰まった、現場の疑問から生まれた実践テクニック集。作業効率を劇的に上げるOffice活用術をお届けします。
TEXTBEFORE関数
読み方: テキストビフォー
分類: 文字列操作
TEXTBEFORE(テキスト,区切り記号,インスタンス番号,一致モード,末尾一致,一致しなかった場合)
文字を区切る前のテキストを返す。
入力されているメールアドレスから、ユーザー名とドメインをわけて抽出したい場合、どのようにしたら、効率よく、抽出することができるのでしょうか。
フラッシュフィルを使う方法もありますが、関数をつかって抽出するには、どのようにしたらいいのでしょうか。
このメールアドレスのユーザー名(@より左側)をB列に抽出して、C列には、ドメイン(@より右側)を抽出したいわけです。
ユーザー名やドメイン名が同じ文字数ならば、LEFT関数やRIGHT関数をつかって抽出することができます。
ただ、同じ文字数ではありません。
そうなると都道府県を抽出するように「@」が何文字目にあって、その左側の文字数を算出してから、LEFT関数をつかって抽出するという方法があります。
今までは、このような方法で抽出していましたが、TEXTBEFORE関数とTEXTAFTER関数が登場したことで、数式の作り方が全く変わりました。
TEXTBEFORE関数・TEXTAFTER関数だけで、抽出することが可能になったからです。
B2には、
=TEXTBEFORE(A2,"@")
という数式を設定したら、オートフィルで数式をコピーします。
C2には、
=TEXTAFTER(A2,"@")
という数式を設定して、オートフィルで数式をコピーします。
たった、これだけで、@の前後の文字列を抽出することができました。
今までのように、@が何文字目にあるとか確認しなくてもいいわけですね。
どちらの関数も2つ目の引数に検索する文字を設定するだけです。
今回は、TEXT関数~TEXTSPLIT関数までをご紹介しております。
TEXT関数
読み方: テキスト
TEXT(値,表示形式)
数値を書式設定した文字列に変換する
TEXTAFTER関数
読み方: テキストアフター
TEXTAFTER(text,delimiter,[instance_num],[match_mod],[match_end],[if_not_found])
文字を区切った後のテキストを返す。
TEXTAFTER(text,delimiter,[instance_num],[ignore_case])から変更
TEXTBEFORE関数
読み方: テキストビフォー
TEXTBEFORE(text,delimiter,[instance_num],[match_mod],[match_end],[if_not_found])
文字を区切る前のテキストを返す。
TEXTBEFORE(text,delimiter,[instance_num],[ignore_case])から変更
TEXTJOIN関数
読み方: テキストジョイン
TEXTJOIN(区切り文字,空のセルは無視,テキスト1,…)
複数の範囲や文字列からテキストを結合する
TEXTSPLIT関数
読み方: テキストスピリット
TEXTSPLIT(text,col_delimiter,[row_delimiter],[ignore_empty],[match_mode],[pat_with])
区切り記号を使用してテキストを行または列に分割する