1/22/2017

Excel。NAME。苗字と名前で分割したいけど、名前の抽出がわかりにくいので、どうにかならない?

Excel。苗字と名前で分割したいけど、名前の抽出がわかりにくいので、どうにかならない?

<SUBSTITUTE関数・RIGHT+LEN+FIND関数>


次のような表を作りたいということなのですが…

氏名があって、苗字と名前に分けたいという、
文字列操作系の関数でお馴染みのパターンですね。

LEFT関数とRIGHT関数をはじめ、LEN関数やスペースを見つけて、
そこまでの文字数を数えるFIND関数など、
文字列操作としては非常にいい練習になりますが、
実務において、「関数をどう組み合わせましたっけ?」ということをよく耳にします。

特に、苗字の方は、
比較的数式を作ることは出来るようなのですが、
名前の方が苦手な方が多いようです。

そこで、実は、今回のように、後半を抽出するにあたり、
関数を複数使わなくても、抽出することが出来るので、その方法をご紹介していきます。

なお、苗字のC列はどのような数式が設定されているかというと、

C3の数式は、

=LEFT(B3,FIND(" ",B3)-1)

半角スペースを見つけて、
その前までが苗字に該当するので、-1(マイナス1)する方法で抽出しております。

では、RIGHT関数を使った、オーソドックスな手法で、
D列の名前を算出した場合の数式は、次の通り。

=RIGHT(B3,LEN(B3)-FIND(" ",B3))

これは、全体の文字数をLEN関数で算出して、
半角スペースの場所を減算した数字が、名前の文字数と合致するので、
このような、RIGHT関数とLEN関数とFIND関数を使って算出する必要があるわけです。

ところが、実は、もっとシンプルで簡単に抽出することが出来るので、
その方法を今からご紹介していきます。

ただし、条件があって、今回のように苗字が先に抽出してあるようにして、
抽出したいものが「あまりもの」というようにしておく必要があります。

で、登場する関数は、【SUBSTITUTE関数】だけ。

この関数は、文字を置換してくれる関数ですね。

とりあえず、数式を作ってから、ご説明したいと思います。
直接、数式を作ってもいいのですが、ダイアログボックスで作っていきます。

D3をクリックして、SUBSTITUTE関数ダイアログボックスを表示しましょう。

文字列は、B3。

検索文字列には、C3&” “。
これは、苗字と半角スペースという意味ですね。

置換文字列には、””。
空白ということですね。

置換対象は、そのままでOKです。

あとは、OKボタンをクリックしましょう。
そして、数式をオートフィルで数式をコピーしましょう。

完成したD3の数式は、

=SUBSTITUTE(B3,C3&" ","")

ですね。

けど、結果は、

きちんと、名前が抽出されていますよね。

では、数式の説明をしますが、
先程も、「あまりもの」と書きましたが、考え方はいたってシンプルで、
苗字はすでに抽出済みなので、
その苗字に半角スペースまで含めた文字列を空白に置換してしまえば、「あまりもの」。

残ったのは、名前。ということになりますよね。

ということで、右側の文字を抽出するには、
RIGHT関数というアイディアもいいのですが、

SUBSTITUTE関数という方法も知っていると、いいかもしれませんね。