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関数という方法も知っていると、いいかもしれませんね。