特定の文字列以降を抽出するならRIGHT、LEN、FIND関数

特定の文字列以降を抽出するならRIGHT、LEN、FIND関数

特定の文字列以降を抽出するには?

Excelで様々なデータに触れてると、「この文字列以降を抽出したい!」ということがよくあります。

例えば下記のようにメールアドレスから携帯キャリアを特定したい場合、

アドレスの@以降を抽出してそこからキャリアを割り出すなどがあります。

例)「〇〇〇@docomo.ne.jp」「×××@ezweb.ne.jp例)」

上記のような例だと@以降を抽出してそこから割り出したいのですが

一体どうやって抽出すればよいでしょうか?

結論から言うとRIGHT、LEN、FIND関数の3つを使用します。

つまりこう

特定の文字列以降は
=RIGHT(B10,LEN(B10)-FIND("@",B10))
で抽出できます。

解説

手順1.文字列を抽出したいリストです。

上記表から@以降を抽出するにはまずRIGHT関数を使用します。

手順2.RIGHT関数を使用します。

まず普通にRIGHT関数を使用し、@以降を抽出してみます。

※RIGHT関数について詳しくはこちら

=RIGHT(B3,7)

手順3.抽出できました。

はい、これで@以降を抽出することができました。

しかし他のセルはどうでしょうか?

手順4.しかし他のセルは正しく抽出できませんでした。

うまく抽出できていませんね。

これは対象文字列の@がそれぞれバラバラの位置にあり、

通常のRIGHT関数では対応できていないことが原因です。

=RIGHT(B3,7)

上記関数の7の部分がそれぞれバラバラであるため、

それぞれのセルごとにこの部分を変える必要があります。

ではどうやったらこの部分をうまく合わせることができるでしょうか?

関数を分解して考えてみましょう。

手順5.分解して考えます。まずLEN関数を使用します。

RIGHT関数で抽出する文字数を求めるには、LEN関数とFIND関数を使用します。

※LEN関数についてはこちら、FIND関数についてはこちら

まずLEN関数で全体の文字数を求めます。

=LEN(B3)

手順6.続いてFIND関数で文字列を指定します。

次に全体の文字数から@までの文字数を引き算します。

今回@までの文字数を数えるためにFIND関数を使用します。

=LEN(B3)-FIND(“@”,

手順7.対象のセルを選択します。

あとは対象セルを選択すれば完成です。

=LEN(B3)-FIND(“@”,B3)

これで「全体の文字数-@までの文字数」=「右から数えて@までの文字数」を求めることができます。

手順8.文字数を求めることができました。

@までの文字数を求めることができました。

手順9.他のセルも同様に出すことができました。

他のセルも同様に出すことができました。

手順10.先ほどの文字数の部分に入れます。

ではここで求めた文字数の関数を先ほどのRIGHT関数の文字数に入れます。

=RIGHT(B3,LEN(B3)-FIND(“@”,B3))

先ほどの7の部分に入れました。

手順11.@以降を求めることができました。

これで@以降を抽出することができました。

他のセルも同様に出すことができるか確認しましょう。

手順12.他のセルも同様に出すことができました。

はい、他のセルも同様に正しく@以降を抽出できました。

まとめ

特定の文字列以降は
=RIGHT(B10,LEN(B10)-FIND("@",B10))
で抽出できます。

今回は特定の文字列以降を抽出する方法について解説しました。

ちなみに特定の文字列が2文字以上の場合はどうなるのでしょうか?

結論から言うと「増えた文字数分全体の文字数から更に減らす」です。

下記に「@a」以降を抽出する例を作成しました。

手順13.おまけで複数文字列の場合。

=RIGHT(B3,LEN(B3)-FIND(“@a”,B3)-1)

はい、末尾に-1が付いてますね。

検索文字が3文字の場合は-2、4文字の場合は-3と増えていきます。

これはFIND関数で検索した文字列の最初の文字までしか数えないためこのようになります。

なので検索文字列が増えた場合、このことを覚えておきましょう。

それではまた。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA