#1セルにある氏名から姓(氏)と名を取り出す (エクセルの文字列の取り出し)

初任研では教わらない早く帰るためのTIPS

先の投稿記事で,二つのセルに分かれた姓(氏)と名を連結して一つのセルに書き出す方法をご説明しましたが,この記事では逆に,一つのセルに記入された氏名データを,姓(氏)と名に分けて出力する方法をご説明したいと思います。各種名簿の作成で利用できるかと思います。

一度読んだけど,関数忘れたという方は,関数だけ記述しておきますので,最後まで読まずにご利用ください(笑)。スペースの半角・全角,また参照セルは”A1”から状況に応じて変更してください。

姓を取り出す =LEFT(A1, FIND(" “, A1)-1)
名を取り出す =RIGHT(A1, LEN(A1)-FIND(" “, A1))

【目次】

Ⅱ 一つのセルに入力された姓名を二つのセルに姓と名で分割する
 1.姓と名の間に区切り(空白)がない場合
 2.全角スペースを半角に変換する(=asc())
 3.半角スペースを全角に変換する
(=jis())
 4.姓を取り出す
 5.名を取り出す


Ⅱ 一つのセルに入力された姓名を二つのセルに姓と名で分割する

20190410_namebunkatu_001.jpg

さて上の目次にもあるように,二つのセルの文字列を結合して一つのセルに書き出すことに比べると手順が増えます。

1.姓と名の間に区切り(空白)がない場合

入力された氏名データが,人によって学校によっては何の区切り(多くの場合はスペース)もなく入力されている場合があるかもしれません。この場合,関数で一気に姓と名を分割することは不可能です。

諦めて手作業で姓と名の間にスペースを入力してください。この場合のスペースは全角でも半角でも構いません。

20190410_namebunkatu_002.jpg

※応用編

多くの場合は「姓(氏)」が2から3文字のケースがほとんどだと思われますので,後述の文字列を取り出す関数が御理解いただけたら,スペースを入れる作業を省くには先頭の2文字で「姓(氏)」を,それ以降で「名」を取り出して,2文字以上の児童生徒のデータを直接編集するのが効率的かもしれません。


2.全角スペースを半角に変換する

次に,全角スペースや半角スペースが混在している場合は,全て「全角」か「半角」に置換します。どちらに統一するかは好みで構いません。全角に変換(若しくは半角に変換)するためには,氏名の列の横に作業列を一つ作成します。

B列の見出しを右クリックして,メニューから挿入を選択します。

20190410_namebunkatu_003.jpg

作業列が出来たら,B2セルに以下の関数を入力します。

=asc(a2)

これは,アスキーコード(半角英数字のコード)に変換するための数式です。式を入力したら最下行まで,数式をコピーします。

20190410_namebunkatu_004.jpg

これで,下図のように,スペースが半角に統一されているはずです。

と言いたいところですが,ダミーのデータでスペースをわざと二つ入れている箇所があたかも全角スペースに見えています。こういうデータは確認の上,スペースを一つ削除してください。

20190410_namebunkatu_005.jpg


3.半角スペースを全角に変換する

全角スペースに変換するときは「2.」の関数式を

=jis(a2)

に変更してください。JIS関数は,日本語の漢字を表示するJISコードに変換するための数式です。

さて,ここから主題の氏名の分割に入るわけですが,その前に,スペースを差し込んだデータを

「数式で導かれた値」→「純粋に値だけ」という変換を行っておきたいと思います。

20190410_namebunkatu_006.jpg

上図の様に数式で導かれた値が表示されているセルを選択して,右クリックメニューからコピーを行います。

20190410_namebunkatu_007.jpg

同じ範囲を選択して(或いは選択されたままの状態で),右クリックメニューから,「値の貼付け」を行います。これで「数式から導かれて表示されているデータ」が「表示されているそのものの値」に変換できた事になります。これはエクセルを操作するときに多用しますので覚えておいて損はないと思います。

さて,これで姓あるいは名を取り出す準備が終わりました。いよいよ姓と名を取り出します!

以下,半角スペースに変換した前提で記述します。(全角にした方は,以下の数式の半角スペースを全角スペースに変更してください。)

4.姓を取り出す

C2セルに,以下の数式を入力します。

=LEFT(B2, FIND(" “, B2)-1)

これは,B2セルの”吉井 義子”というデータの半角スペースがある位置からー1した位置までの文字数を取り出せという数式です。もちろん数式を理解して覚えておいて損はありませんが,私は特に覚えてはいません。メモして必要な時にそのままコピペしています。

20190410_namebunkatu_008.jpg


5.名を取り出す

次にD2セルに,次の数式を入力します。

=RIGHT(B2, LEN(B2)-FIND(" “, B2))

これは,B2セルの”吉井 義子”というデータの右側の最終文字位置から半角スペースがある位置までの文字列を取り出せという命令です。

20190410_namebunkatu_009.jpg

これで,C2セル,D2セルに保護者の姓(氏)と名が分割して取り出せました。

あとは,C2セル,D2セルを選択後にコピーして,最下行まで数式の複写を行います。(下図の説明は値の貼り付けになっていますが,数式の貼り付けです)

20190410_namebunkatu_010.jpg

図中の説明は値の貼り付けになっているけど,数式の貼り付けを行ってください。

これで,一つのセルに入力された氏名データから,姓(氏)と名を取り出すことができました。

20190410_namebunkatu_011.jpg

上図では,あえて半角スペースが二つの所を修正せずに変換していますので,須藤さんの所が変になっていますが,実際には先に修正を行ったのち変換してください。

【重要】

また,姓と名は,数式から導かれて表示されているだけですので,他のワークシートで再利用する際は,先ほど行った「コピー → 値の貼付け」で,テキストデータに変換してから再利用してください。

以上です。

逆に,2セルに分かれた姓と名を結合する方法は以下の記事で御覧ください。
# 姓(氏)と名を結合する (エクセルの文字列の結合)