エクセル 姓と名を分けるには

姓と名を分けるには

例えば、「安藤 豊」(空白全角区切り)「安藤 豊」(空白半角区切り)のように、名前と姓が一緒になっているセルがあるとします。

これではいろいろ使いづらいので、「安藤」「豊」というように分けたいとします。
さて、どうすればよいでしょうか?

ここでは、主に2つの方法をご紹介します。
メニューから「区切り位置指定」で行う方法と、関数を使って力技で取り出す方法です。

区切り位置指定

姓と名が何らかの共通する記号で分けられているときに使えます。たとえば、「 」(空白) 「,」「:」「TAB」「.」とか、何でもいいのですが、

もし姓と名がくっついていた場合、「安藤豊」のように・・・ではちょっとお手上げです。
このようなデータを作らないようにするのが大事です。

対処法ですが、日本の苗字は2文字が多いので、とりあえずLEFT関数で2文字とって姓とし、あとは目視・・・か、手作業で区切り文字を頑張って入れる・・・くらいでしょうか?

たとえば次の図のようなデータがあったとします。
姓と名は「 」(空白)で仕切られています。

これを姓と名に分けるためには、まず対象範囲をマウスで選択します。

次にメニューの「データ」から「区切り位置」をクリックします。

そうすると、「区切り位置指定ウィザード」が出ます。


カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ(D)」にチェックを入れ「次へ(N)」を押します。

 

次に「区切り文字」を指定します。
ここでは姓と名の間にスペースを挿入していますので、「スペース」にチェックを入れました。
この区切り文字はデータにより変えることもできます。

次へ(N)」をクリック。

 

表示先(E)」を $\$$C$\$$3 にします。(これは状況に応じて変えてください)
(範囲の最初のセルだけで大丈夫です)

B列を指定することもできます。
その場合は元の「姓(空白)名」は上書きされます。

 

戻った画面で、「列のデータ形式(G)」が「G/標準(G)」になっていることを確認します。

そして、「完了(F)」を押して終了です。

うまく変換できました。

関数を使って

関数をつかって実現できるかやってみましょう。
私個人的には、書式?をいじるより、関数やマクロを使う方が好みです。

書式を使った場合、のちのちシートをいじらなければOKですが、いろいろ改造等しようとするとは関数やマクロで書いた方が、あとから応用が利くことが多いように思います。

ま、考えるのが楽しいんですけどね。

ここでは、FIND関数またはSEARCH関数を使います。

書式

=FIND(検索文字列,対象,[開始位置])

FIND関数は大文字と小文字の区別します。

SEARCH関数は大文字と小文字の区別しません

検索文字列を対象文字列の中でサーチしてその始まる文字数を返します。

C3 セルにFIND関数と LEFT関数で次のように入力します。

=LEFT($\$$B3,FIND(“ ”,$\$$B3)-1)

FIND関数で空白 “ ” をサーチして、その数-1を引数としてLEFT関数を使って姓を取り出します。

 

D3 セルに名を取り出す式を入力します。

FIND関数と MID関数、LEN関数をくみあわせて入力しました。

=MID($\$$B3,FIND(“ ”,$\$$B3)+1,LEN($\$$B3)-FIND(“ ”,$\$$B3))

こちらは少し複雑になります。

FIND関数で空白 “ ” をサーチして、その数+1で、名前の始まる文字数を取り出します。

そして、文字列全体の文字数をLEN関数で取り出します。それからFIND関数で得た値を引くことにより、とりだす名前の文字数を計算しています。

それらを引数として、MID関数を使って姓を取り出します。

コメント