特定の文字列以降を抽出するには?
Excelで様々なデータに触れてると、「この文字列以降を抽出したい!」ということがよくあります。
例えば下記のようにメールアドレスから携帯キャリアを特定したい場合、
アドレスの@以降を抽出してそこからキャリアを割り出すなどがあります。
例)「〇〇〇@docomo.ne.jp」「×××@ezweb.ne.jp例)」
上記のような例だと@以降を抽出してそこから割り出したいのですが
一体どうやって抽出すればよいでしょうか?
結論から言うとRIGHT、LEN、FIND関数の3つを使用します。
つまりこう
解説
上記表から@以降を抽出するにはまずRIGHT関数を使用します。
まず普通にRIGHT関数を使用し、@以降を抽出してみます。
※RIGHT関数について詳しくはこちら
=RIGHT(B3,7)
はい、これで@以降を抽出することができました。
しかし他のセルはどうでしょうか?
うまく抽出できていませんね。
これは対象文字列の@がそれぞれバラバラの位置にあり、
通常のRIGHT関数では対応できていないことが原因です。
=RIGHT(B3,7)
上記関数の7の部分がそれぞれバラバラであるため、
それぞれのセルごとにこの部分を変える必要があります。
ではどうやったらこの部分をうまく合わせることができるでしょうか?
関数を分解して考えてみましょう。
RIGHT関数で抽出する文字数を求めるには、LEN関数とFIND関数を使用します。
まずLEN関数で全体の文字数を求めます。
=LEN(B3)
次に全体の文字数から@までの文字数を引き算します。
今回@までの文字数を数えるためにFIND関数を使用します。
=LEN(B3)-FIND(“@”,
あとは対象セルを選択すれば完成です。
=LEN(B3)-FIND(“@”,B3)
これで「全体の文字数-@までの文字数」=「右から数えて@までの文字数」を求めることができます。
@までの文字数を求めることができました。
他のセルも同様に出すことができました。
ではここで求めた文字数の関数を先ほどのRIGHT関数の文字数に入れます。
=RIGHT(B3,LEN(B3)-FIND(“@”,B3))
先ほどの7の部分に入れました。
これで@以降を抽出することができました。
他のセルも同様に出すことができるか確認しましょう。
はい、他のセルも同様に正しく@以降を抽出できました。
まとめ
今回は特定の文字列以降を抽出する方法について解説しました。
ちなみに特定の文字列が2文字以上の場合はどうなるのでしょうか?
結論から言うと「増えた文字数分全体の文字数から更に減らす」です。
下記に「@a」以降を抽出する例を作成しました。
=RIGHT(B3,LEN(B3)-FIND(“@a”,B3)-1)
はい、末尾に-1が付いてますね。
検索文字が3文字の場合は-2、4文字の場合は-3と増えていきます。
これはFIND関数で検索した文字列の最初の文字までしか数えないためこのようになります。
なので検索文字列が増えた場合、このことを覚えておきましょう。
それではまた。