昨日は基本的なLEFT関数、RIGHT関数、MID関数をご紹介しました。文字数が固定の場合はこちらをご覧ください。
今回は文字数が変動する場合の方法をご紹介したいと思います。
技あり!!抽出したい文字列が変動する場合
抽出した文字列が必ずしも同じ文字数とは限りませんよね。
例として、メールアドレスで説明します。
@の前までをB列に抜き出したいと思います。@までが5文字だったり3文字だったり、固定されてないのでLEFT関数、RIGHT関数、MID関数が使えません。
この場合はFIND関数を使いましょう。
FIND関数
まずはFIND関数がどういうものか、説明したいと思います。
FIND関数は指定した文字列を検索し、その文字列が最初に現れる位置を左から数えた数字を返します。
使ってみましょう。では検索文字列を@として、FIND関数を入力します。
2行目をみてみると@はabcdeの次なので6文字目となります。
FIND関数を使って@より前の文字を抽出してみましょう。(左から特定の文字まで)
いよいよFIND関数を使って抽出したい文字列を抜き出してみましょう。
今回は@より前の文字列をB列に抽出します。
LEFT関数だけだと=LEFT(A2,?)左から何文字抽出すればいいかわからない。ということで
=LEFT(A2,FIND(“@”,A2)-1) A2セルの左からA2セルの@までの文字列から1文字引いた(@を省く)文字列を抽出。
これで@より前の文字列が抽出できました。
じゃ、@より後の文字列を抽出するにはどうすればいいの?と思いますよね。
ここから少しずつ難しくなっていきます。
右から検索文字までの文字列を抽出する方法
関数を組み合わせたら何通りかやり方はあるのですが、できるだけ簡単な関数で抽出したいと思います。せっかくFIND関数も紹介したことですし、FIND関数も使って簡単に抽出してみましょう。
ここで登場するのはLEN関数です。
LEN関数
LEN関数とは文字列の文字数を返す関数です。
このセルに何文字入力されているかがわかります。
B2セルに=LEN(A2)と入力してみたところ15という数字が返されました。
A2セルを目視で数えてみてください。15文字入力されてますよね。
FIND関数とLEN関数を使って右から特定文字まで抽出
では、このLEN関数を使って、どうやって右から@の後ろまでの文字列を抽出するか。
全体から@までの文字列をひけばいいんです。
って言われても・・・ですよね。
とりあえずやってみました。
右から@の後ろまでだから・・・=RIGHT(B2,?)。RIGHT関数だけでは抽出できませんんね。
=RIGHT(A2,LEN(A2)-FIND(“@”,A2)
A2セルの右から・・・A2セルの全体文字数(15)ひくA2セルの左から@までの文字数(6)
15-6で右から9文字をB2へ抽出。
最後に、特定文字から特定文字の間を抽出する方法をご紹介します。
こちらも出来るだけ簡単なやり方で説明したいと思います。
特定文字から特定文字の間を抽出してみよう
MID関数だけでは固定の文字列でしか使えませんが、MID関数とFIND関数を使って文字数が変動する場合でも抽出できるようにします。
=MID(A2,?,?)
=MID(A2,FIND(“@”,A2)+1,FIND(“.”,A2)-1–FIND(“@”,A2))
A2セルの左から@までの文字数+1(5)から左から.までの文字数引く1(7)引く左から@までの文字数(4)までの文字列をB2に抽出したい。
はじめは関数が並んでて意味がわからない!!ってなるかもしれませんが、一つづつの関数を理解していけば、それの組み合わせだということがわかります。
あまり難しく考えず、一つづつ理解して使っていきましょう。
参考書籍をご紹介させていただきます。
Excel 最強の教科書[完全版]??すぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術 新品価格 |
コメント