Excel情報556 関数--区切り文字を目印に、文字列を簡単に抜き出す方法
【テーマ】
データごとに区切り位置が異なる文字列から必要な部分を取り出すのは、LEFTやRIGHT、MID関数では難しいことがあります。今回は、それを簡単に解決できる方法をご紹介します。
【方法】
TEXTBEFORE/TEXTAFTERを使用します。
【参考】
セル範囲を指定すれば自動で結果が展開(スピル)されます。
■ 今回の内容
複雑な関数を組まなくても、指定した区切り文字の前後の文字列の抽出が簡単に
顧客データの名前や住所から、特定の部分だけを抽出したい… けど、
LEFTやRIGHT、MID関数を組み合わせた複雑な数式で毎回苦労していませんか?
区切り文字の前後の文字列を、たった1つの関数で直感的に抽出できるので
複雑な関数構造や手作業の調整が不要になります。
「東京都 千代田区 麹町1-2-3」の住所から、都道府県や市区町村、町名を取り出したい場合、
LEFT, MID, FIND関数を何重にも組み合わせると数式が煩雑で大変です。
【比較】(住所から「東京都」のみ取り出したい場合)
従来の方法:=LEFT(B2,FIND(" ",B2)-1) ← 複雑で覚えにくい
今回ご紹介する方法:=TEXTBEFORE(B2," ") ← シンプルで直感的
【ご参考】 途中の文字の抽出方法(住所から「千代田区」のみ取り出したい場合)
従来の方法:=MID(B2,FIND(" ",B2)+1,FIND(" ",B2,FIND(" ",B2)+1)-FIND(" ",B2)-1)
今回ご紹介する方法:=TEXTBEFORE(TEXTAFTER(B2," ")," ")
TEXTAFTERにより千代田区以降(「千代田区 麹町1-2-3」)を抽出し、
さらにTEXTBEFOREで「千代田区」のみを抽出しています。
■方法
TEXTBEFORE関数またはTEXTAFTER関数を使用します。
【対応バージョン】Excel for Microsoft 365 / Excel 2024 以降
◆TEXTBEFORE関数(指定した区切り文字より「前の部分」を抽出します。)
TEXTBEFORE(テキスト, 区切り文字)
下記はA1セルの"山田 太郎"から山田を取り出す例です(山田と太郎の間には半角スペースあり)。
=TEXTBEFORE(A1, " ")
→ 結果: 山田
=TEXTBEFORE(A3, {" "," "})
→このように区切り文字を複数指定すれば半角・全角スペースの両方に対応できます。
◆TEXTAFTER関数(指定した区切り文字より「後の部分」を抽出します。)
TEXTAFTER(テキスト, 区切り文字)
下記はA1セルの"山田 太郎"から太郎を取り出す例です(山田と太郎の間には半角スペースあり)。
=TEXTAFTER(A1, " ")
→ 結果: 太郎
TEXTBEFORE同様、区切り文字を複数指定すれば半角・全角スペースの両方に対応できます。
■ご参考までに
たった1つの関数で、文字列をスッキリ抽出!
複数の住所から都道府県を抽出したい時は
セル範囲を指定すれば自動で結果が展開(スピル)されます!
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます