Excel で名前データから「姓」と「名」を抽出する方法

技あり!PC活用術

Excel で名前データを集めましたが「姓」と「名」に分ける方法はありますか?

例えば「姓」と「名」の間に半角スペースが挿入されていれば「TEXTSPLIT」関数を使った式で名前データを分割して、別々のセルに抽出できるわ。

半角スペースと全角スペースが混在している場合はどうですか?

それなら半角スペースでも全角スペースでも対応できる式にすれば大丈夫。

関数を使わない方法もありますか?

先頭行の「姓」と「名」だけ手入力すれば「フラッシュフィル」機能でも可能よ。

説明

名前データがあり「姓」と「名」の間にスペースが挿入されている場合、スペースの前後でテキストを分割することで「姓」と「名」に分けて抽出が可能です。
例えば名前データが「A1」にあり、「姓」と「名」の間が「半角スペース」の場合、「B1」に「姓」、「B2」に「名」を抽出するなら「B1」に以下の式を入力します。

=TEXTSPLIT(A1," ")

この場合の「TEXTSPLIT」関数は、セル「A1」のデータを半角スペース「" "」を区切りにして分割しています。
名前データが「A5」まである場合、「B1」を入力後に「B5」まで「オートフィル」操作をすることで「姓」も「名」も一発で抽出できます。

  • 選択セル右下の小さな四角い「オートフィルハンドル」をドラッグします。

半角スペースだけなら「" "」ですが、全角スペースも混在するなら「" "」でも分割できるように配列式「{" ", " "}」を使います。

=TEXTSPLIT(A1,{" ", " "})

一方、関数式を使わなくても、Excel の「フラッシュフィル」機能を使えばスペース区切りの名前データから「姓」と「名」を抽出するのは可能です。
例えば名前データが縦に複数並んでいるとき、先頭行だけ、右のセルに「姓」、さらにその右のセルに「名」を手入力、あるいは「コピー&貼り付け」をします。

ここで「B1」セルを選択して現れる「オートフィル ハンドル」を「B5」までドラッグすると「B2」から「B5」まですべてに「佐藤」が入力 (コピー) されます。

  • 「オートフィルハンドル」をダブルクリックしても同じ結果です。

このとき「B5」の右下には「オートフィルオプション」アイコンが表示され、クリックすると選択肢が表示されるので「フラッシュフィル」を選択します。

これで「B2」から「B5」まで、左のセルの名前データから「姓」が自動で抽出されます。

同様に「C1」セルを選択して「フラッシュフィル」を実行すれば名前データから「名」が自動で抽出されます。

あるいは「C1」セルを選択した状態で「ホーム」タブのリボンで「編集」グループの「フィル」ボタンメニューから「フラッシュフィル」を選択します。

もしくは「データ」タブのリボンにも「データツール」グループの中に「フラッシュフィル」ボタンがあるので選択することができます。

あとは覚えられるならショートカットキー「Ctrl + E」も便利です。

逆に「姓」と「名」データが分かれて並んでいるとき、右隣のセルに結合した名前データを「フラッシュフィル」で表示することも可能です。

最初の名前データで「姓」と「名」の間に半角スペースを挿入しておけば「フラッシュフィル」を実行したとき、残りの名前データにも半角スペースが挿入されます。

執筆者: 林 俊二

お気軽にお問い合わせください

ページの先頭に戻る