【Excel】関数を使って氏名を「姓」と「名」に分割する
Excelで次のような顧客名簿や住所録などを作成するため氏名を入力した後に、関数を使って氏名一覧を「姓」と「名」に分割する方法をご紹介いたします。
今回使う関数は次の4つです。
・FIND関数:検索した文字列が何文字目にあるかを求めます
=FIND(検索文字列,対象,開始位置)
・LEFT関数:文字列の左端から指定した文字数分の文字列を取り出すことができます
=LEFT(文字列,文字数)
・MID関数:文字列の中の指定した位置から指定文字数分の文字列を取り出すことができます
=MID(文字列,開始位置,文字数)
・LEN関数:指定した文字列の文字数を求めることができます
=LEN(文字列)
いずれも関数ライブラリの「文字列操作」グループに属しています。
①氏名から「姓」を取り出すため、LEFT関数とFIND関数を利用します。
一見、日本人の苗字は2文字が多いのでLEFT関数の「文字数」を「2」にすれば問題無いように思いがちですが、
そうすると1文字や3文字以上の苗字を取り出すことができません。
そこで、姓と名の区切り文字(今回は半角スペース)が何文字目にあるかをFIND関数で求めます。
求められた数から1引いた数が苗字の文字数(=LEFT関数の「文字数」)となります。
1文字の苗字⇒区切り文字は2文字目にあるので「2-1=1」
2文字の苗字⇒区切り文字は3文字目にあるので「3-1=2」
3文字の苗字⇒区切り文字は4文字目にあるので「4-1=3」
4文字の苗字⇒区切り文字は5文字目にあるので「5-1=4」
よって、セル【B3】の「姓」には次の数式を入力します。
=LEFT(A3,FIND(" ",A3)-1)
②氏名から「名」を取り出すため、MID関数・FIND関数・LEN関数を利用します。
名前も苗字同様、区切り文字が何文字目にあるのかをFIND関数で求め、
求められた数に1を足した数が名前の開始位置(=MID関数の「開始位置」)となります。
名前は人によって文字数が異なるため、文字数を求めるLEN関数を使います。
よって、セル【C3】の「名」には次の数式を入力します。
=MID(A3,FIND(" ",A3)+1,LEN(A3))
今回ご紹介した方法はあくまで一例ですので、ぜひオリジナルの方法を開拓してみてください。
今回使う関数は次の4つです。
・FIND関数:検索した文字列が何文字目にあるかを求めます
=FIND(検索文字列,対象,開始位置)
・LEFT関数:文字列の左端から指定した文字数分の文字列を取り出すことができます
=LEFT(文字列,文字数)
・MID関数:文字列の中の指定した位置から指定文字数分の文字列を取り出すことができます
=MID(文字列,開始位置,文字数)
・LEN関数:指定した文字列の文字数を求めることができます
=LEN(文字列)
いずれも関数ライブラリの「文字列操作」グループに属しています。
①氏名から「姓」を取り出すため、LEFT関数とFIND関数を利用します。
一見、日本人の苗字は2文字が多いのでLEFT関数の「文字数」を「2」にすれば問題無いように思いがちですが、
そうすると1文字や3文字以上の苗字を取り出すことができません。
そこで、姓と名の区切り文字(今回は半角スペース)が何文字目にあるかをFIND関数で求めます。
求められた数から1引いた数が苗字の文字数(=LEFT関数の「文字数」)となります。
1文字の苗字⇒区切り文字は2文字目にあるので「2-1=1」
2文字の苗字⇒区切り文字は3文字目にあるので「3-1=2」
3文字の苗字⇒区切り文字は4文字目にあるので「4-1=3」
4文字の苗字⇒区切り文字は5文字目にあるので「5-1=4」
よって、セル【B3】の「姓」には次の数式を入力します。
=LEFT(A3,FIND(" ",A3)-1)
②氏名から「名」を取り出すため、MID関数・FIND関数・LEN関数を利用します。
名前も苗字同様、区切り文字が何文字目にあるのかをFIND関数で求め、
求められた数に1を足した数が名前の開始位置(=MID関数の「開始位置」)となります。
名前は人によって文字数が異なるため、文字数を求めるLEN関数を使います。
よって、セル【C3】の「名」には次の数式を入力します。
=MID(A3,FIND(" ",A3)+1,LEN(A3))
今回ご紹介した方法はあくまで一例ですので、ぜひオリジナルの方法を開拓してみてください。