姓と名を分けるには
例えば、「安藤 豊」(空白全角区切り)「安藤 豊」(空白半角区切り)のように、名前と姓が一緒になっているセルがあるとします。
これではいろいろ使いづらいので、「安藤」「豊」というように分けたいとします。
さて、どうすればよいでしょうか?
ここでは、主に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関数を使って姓を取り出します。
コメント