名簿や顧客リストで「山田 太郎」のように1つのセルへ入力された姓名を、姓・名の列へ分けたい場面は多いですね。Excelなら、Microsoft 365などではTEXTSPLIT関数、どのバージョンでも使いやすい方法なら[区切り位置]を使うと、スペース区切りの姓名をすばやく分割できます。
結論:姓名の分割はTEXTSPLIT関数か[区切り位置]が最短です
たとえばA列に「山田 太郎」「佐藤 花子」のような氏名があり、B列に姓、C列に名を表示したいケースを例に進めます。なお、元のデータに全角スペースが使われている場合は、式や設定を少し変える必要があります。後半のチェックポイントも確認してください。
Microsoft 365で姓名を自動分割する:TEXTSPLIT関数
TEXTSPLIT関数は、指定した文字を区切りとしてセルの内容を分ける関数です。数式を入れるだけで右隣のセルへ結果が自動表示されるため、元データを残したまま作業したいときに便利ですよ。
半角スペースで区切られた姓名を分ける手順
- 姓名が入っているセルを確認します。ここではA2に「山田 太郎」が入っているものとします。
- 姓を表示したい先頭セル、たとえばB2セルをクリックします。
- =TEXTSPLIT(A2," ")と入力します。
- Enterキーを押します。B2に「山田」、C2に「太郎」と表示されます。
- ほかの行にも適用したい場合は、B2セルを選び、セル右下の小さな四角を下へドラッグします。
TEXTSPLITの2つ目の引数は「区切り文字」です。半角スペースを指定するため、引用符の間に半角スペースを1つ入れています。姓名の間が全角スペースなら、次の式を使いましょう。
=TEXTSPLIT(A2," ")
「" "」の引用符の間には全角スペースが入っています。見た目では判別しにくいため、元データのスペースをコピーして数式の引用符内へ貼り付けると確実です。
姓・名の列見出しも一緒に整えるコツ
- B1セルに「姓」、C1セルに「名」と入力します。
- B列とC列の境目をダブルクリックすると、文字数に合わせて列幅を自動調整できます。
- 数式の結果を固定したいときは、B列からC列の結果範囲をコピーし、右クリックして[値の貼り付け]を選びます。
値として貼り付ければ、あとでA列の元データを削除しても、分割した姓・名は残せます。ただし、元データと連動させたい間は数式のままにしておきましょう。
関数が使えないときは[区切り位置]で一括分割
TEXTSPLIT関数が使えないExcelや、大量のデータを一度だけ分割して確定したい場合は[区切り位置]が便利です。この操作は分割後のセルへ直接データを書き込むため、右側の列にデータがあると上書きされる点だけ注意してください。
[データ]タブからスペース区切りで分ける手順
- 姓名が並んでいる範囲を選択します。A2からA100までならA2:A100を選びます。
- リボンの[データ]タブをクリックします。
- [データツール]グループにある[区切り位置]をクリックします。
- 画面が開いたら[区切り文字によってフィールドを区切る]を選び、[次へ]をクリックします。
- 区切り文字で[スペース]にチェックを入れます。[タブ]などほかのチェックは外しましょう。
- プレビューで「山田」と「太郎」が別々に区切られていることを確認します。
- [次へ]をクリックし、必要に応じて[表示先]を指定します。元データを残すなら「$B$2」など空いているセルを指定してください。
- [完了]をクリックすると、姓と名が別列へ分割されます。
表示先を指定しない場合、選択したA列が分割結果に置き換わります。作業前にファイルを保存するか、元データを別列へコピーしてから実行すると安心です。
Excelで姓名を分割できない場合のチェックポイント
半角スペースと全角スペースが混在している
最も多い原因は、スペースの種類がそろっていないことです。TEXTSPLITで半角スペースを指定しているのに、データ側が全角スペースなら分割されません。[区切り位置]の[スペース]も、基本的には半角スペース向けです。
混在しているデータは、先に全角スペースを半角スペースへ置き換えると整えやすいですよ。
- 対象の列または範囲を選択します。
- Ctrl+Hを押して[検索と置換]を開きます。
- [検索する文字列]へ全角スペースを入力します。
- [置換後の文字列]へ半角スペースを1つ入力します。
- [すべて置換]をクリックします。
- 置換後に、=TEXTSPLIT(A2," ")または[区切り位置]を実行します。
全角スペースは見えにくいので、検索欄へ元データ内のスペースをコピーして貼り付ける方法がおすすめです。
#NAME?エラーが表示される
TEXTSPLITを入力して#NAME?が出る場合は、お使いのExcelでTEXTSPLIT関数を利用できない可能性があります。この場合は[データ]タブの[区切り位置]を使ってください。Excelのバージョン確認は、[ファイル]→[アカウント]→[Excelのバージョン情報]で行えます。
#SPILL!エラーが表示される
TEXTSPLITは結果を右側のセルへ自動展開します。B2に式を入れた場合、C2など結果が広がる先に文字や数式が入っていると#SPILL!エラーになります。分割先の右側セルを空にするか、空いている場所へ数式を移動しましょう。結合セルがある場合も展開できないため、[ホーム]→[結合して中央揃え]から結合を解除してください。
姓だけ、または名だけしか入っていない
「山田」のようにスペースがないデータは、分割しても姓の列にだけ表示され、名の列は空欄になります。これはエラーではありません。氏名の入力漏れを確認したい場合は、分割後の名の列をフィルターで空白に絞り込むと、チェックが速くなります。
スペースが2つ以上あって列がずれる
「山田 太郎」のようにスペースが連続すると、空白の列ができたり、データの形がそろわなかったりします。先に余分な空白を整理したいときは、別列に=TRIM(A2)を入力してください。TRIM関数は連続する半角スペースを1つにまとめ、先頭・末尾の余分な半角スペースも削除します。全角スペースが含まれる場合は、=TRIM(SUBSTITUTE(A2," "," "))とすると、全角スペースを半角へ直してから整えられます。
姓名を分けた後に役立つ時短ワザ
姓と名をもう一度つなげる
分割したB列の姓とC列の名を、別の形式で結合したいこともあります。その場合はD2セルに次の式を入力しましょう。
=B2&" "&C2
これで「山田 太郎」のように半角スペース入りで結合できます。スペースなしの「山田太郎」にしたいなら、=B2&C2でOKです。
フラッシュフィルで入力例から分割する
関数を使わず、データの規則をExcelに読み取らせる方法もあります。B2に姓だけを手入力し、B3セルを選んでCtrl+Eを押すと、Excelがパターンを認識して姓を埋めてくれることがあります。名も同じようにC列で実行できます。ただし、データの表記ゆれが多い場合は誤った候補が混ざることがあるため、結果は必ず確認してください。
作業を速くする基本ショートカット
- Ctrl+H:検索と置換を開く
- Ctrl+E:フラッシュフィルを実行する
- Ctrl+C:コピーする
- Ctrl+Alt+V:形式を選択して貼り付けを開く
- Ctrl+Z:直前の操作を元に戻す
姓名分割は、一度手順を覚えると名簿整理やCSVデータの加工がぐっと楽になります。新しいExcelならTEXTSPLIT、バージョンを問わず確実に進めるなら[区切り位置]を選び、スペースの種類だけ丁寧に確認して進めましょう。
