皆さんこんにちは、イニシャルKです。
毎日Excelを使ってると、「ある特定の文字列の前後を抽出したい」って時ありませんか?
例)メールアドレス「○○○@xxx.yyy」の○○○(”@”より前)を抽出したい
本記事では、
上記の例のように、セル内の文字列を分割して抽出したい時に便利なワザを紹介します。
毎回手作業でコピペや切り取りしている方は、是非このワザを覚えて使ってみて下さい。作業効率がグンとアップしますよ♪
指定した文字数分の文字列を抽出(LEFT・MID・RIGHT関数)
LEFT関数・MID関数・RIGHT関数は、セル内の文字列の一部分を抽出したい時に利用する便利な関数です。
※開始位置や文字数は、半角/全角の区別なく1文字=1として扱われます。
LEFT(文字列, 文字数)
LEFT関数は、文字列の先頭から指定された文字数分の文字列を返してくれる関数です。
書き方は
=LEFT(文字列, 文字数) です。
例えば、携帯の電話番号に対して、先頭から3つの番号を抽出したい場合は下記のように記載します。

B2セルに記載している通り、文字列=A2セル、文字数=3 となります。
あとは、B2セルの計算式をB列のB3セル以降にコピペすれば、A3セル以降の携帯番号に対しても同様に自動で抽出してくれます。
MID(文字列, 開始位置, 文字数)
MID関数は、文字列の指定された開始位置から、指定された文字数分の文字列を返してくれる関数です。
書き方は
=MID(文字列, 開始位置, 文字数) です。
携帯の電話番号に対して、真ん中の4つの番号を抽出したい場合は下記のように記載します。

C2セルに記載している通り、文字列=A2セル、開始位置=4(※ハイフン”-”も一文字としてカウントされるため)、文字数=4 となります。
あとは、C2セルの計算式をC列のC3セル以降にコピペすれば、A3セル以降の携帯番号に対しても同様に、自動で抽出してくれます。
RIGHT(文字列, 文字数)
RIGHT関数は、文字列の末尾から指定された文字数分の文字列を返してくれる関数です。
書き方は
=RIGHT(文字列, 文字数) です。
携帯の電話番号に対して、末尾の4つの番号を抽出したい場合は下記のように記載します。

D2セルに記載している通り、文字列=A2セル、文字数=4 となります。
あとは、D2セルの計算式をD列のD3セル以降にコピペすれば、A3セル以降の携帯番号に対しても同様に自動で抽出してくれます。
これで、セル内の文字列から特定の文字数分を抽出する方法は分かりました。
しかし、大概は、冒頭で述べた「例)メールアドレスの”@”より前の文字列を抽出したい」というように、抽出したい文字の文字数は可変個の場合が多いです。
ですので、次に紹介するFIND関数と組み合わせて、可変個の文字数でも抽出できるよう一工夫していきます。
文字列の検索(FIND関数)
指定した文字列が何番目に登場するかを知りたい時にFIND関数を使います。
※大文字と小文字は区別されます。
FIND(検索文字列, 対象, [開始位置])
FIND関数は、指定した検索文字列が対象(のセル)内で何番目に登場するかを返してくれる関数です。
※開始位置とは、対象(のセル)の何文字目から検索するかを指定する時に使用します。
開始位置は省略可能です。(省略した場合、開始位置=1 として扱われます。)
書き方は
=FIND(検索文字列, 対象, [開始位置]) です。
例えば、メールアドレス「○○○@xxx.yyy」に対して、文字列の先頭から”@”までの文字数を、FIND関数で計算すると下記になります。

B2セルに記載している通り、FIND関数に指定する引数は、検索文字列=”@”、対象=A2セル、[開始位置]=1 です。そして、検索結果は”○○○@”ですので、4が返ってきます。
特定の文字列を抽出(LEFT・FINDの組み合わせ)
ここまで、指定した文字数分の文字列の抽出方法と文字列の検索方法について説明しましたので、2つの関数を組み合わせて、メールアドレス「○○○@xxx.yyy」の○○○(”@”より前)を抽出してみましょう。
メールアドレスの先頭から”@”の前までを抽出したいのでLEFT関数を使おうと思いますが、“@”より前の文字数は可変個であるため、LEFT関数だけでは上手に抽出できません。ですので、FIND関数を組み合わせて”@”までの文字数を求めます。
数式で書くと
=LEFT(A2,FIND(“@”,A2,1)-1) です。

FIND関数で”@”を検索すると”@”までの文字数が返ってくるので、”@”の位置から -1 してる所がポイントです。
ちなみに、MID関数でも同じ事ができます。
書き方は
=MID(A2,1,FIND(“@”,A2,1)-1) です。
逆に、”@”以降の文字列を取得したい場合は、RIGHT関数で抽出できます。
書き方は
=RIGHT(A2,LEN(A2)-FIND(“@”,A2,1)) です。
第2引数の所が複雑そうに見えますが、やってる事は単純で、文字数の指定を A2セル全体の文字数:LEN(A2) から “@”までの文字数:FIND(“@”,A2,1) で引き算しているだけです。
ちなみに、MID関数でも同じ事ができます。
※複雑なので覚える必要ありません!!
書き方は
=MID(A2,FIND(“@”,A2,1)+1,LEN(A2)-FIND(“@”,A2,1)) のはず(笑)。
いかがでしたでしょうか?
今回は、携帯の電話番号やメールアドレスを例にして紹介しましたが、他にも色々な場面で使えるワザだと思いますので、是非色々と使って応用してみて下さい。
それでは、また次回の記事でお会いしましょう。