シート実務ラボ

Excel・スプレッドシートの「動かして確かめた」実務ガイド

ホーム > エクセルで氏名を姓と名に分ける方法(スペース区切りの式と、分けられないケース)【LibreOfficeで計算して確認】

2026-10-15 ・ Excel関数

エクセルで氏名を姓と名に分ける方法(スペース区切りの式と、分けられないケース)【LibreOfficeで計算して確認】

名簿の氏名が1つの列に入っていて、姓と名を別の列に分けたいときがあります。この記事では、氏名の間のスペースを目印に分ける式を、14パターンの入力で実際に計算して確かめた結果だけで紹介します。「分けられない行」を見つける方法も入れています。

出典: 筆者がLibreOfficeで計算して確認(検証スクリプト: site/verify/name_split.py)。外部サイトの説明は参照していません。Excelでは未確認です。使う関数はExcelにもありますが、本番のデータに使う前に、数行で結果を確かめてください。

先に結論

手順1: スペースを半角1つにそろえる(B列)

A2に氏名が入っているとして、B2に次の式を入れ、下へコピーします。

=IF(A2="","",TRIM(SUBSTITUTE(A2," "," ")))

SUBSTITUTEで全角スペースを半角に置き換え、TRIMで前後のスペースを消して、途中の連続したスペースを1つにします。

手順2: 分けてよい行かを判定する(C列)

=IF(A2="","",IF(LEN(B2)-LEN(SUBSTITUTE(B2," ",""))=1,"OK","要確認"))

スペースの数を「文字数 − スペースを消した文字数」で数え、ちょうど1つなら「OK」、0個や2個以上なら「要確認」にします。

手順3: 姓と名を切り出す(D列・E列)

D2(姓): =IF(C2="OK",LEFT(B2,FIND(" ",B2)-1),"")
E2(名): =IF(C2="OK",MID(B2,FIND(" ",B2)+1,LEN(B2)),"")

「OK」の行だけ、最初のスペースの手前を姓、後ろを名にします。

実際に計算した結果

14パターンを入れて計算しました(▢は全角スペース、□は半角スペースを表します)。

入力 整えた氏名(B) 判定(C) 姓(D) 名(E)
山田□太郎 山田 太郎 OK 山田 太郎
山田▢太郎 山田 太郎 OK 山田 太郎
山田太郎 山田太郎 要確認
□山田□太郎□(前後にスペース) 山田 太郎 OK 山田 太郎
山田□□太郎(スペース2個) 山田 太郎 OK 山田 太郎
山田□▢太郎(半角と全角) 山田 太郎 OK 山田 太郎
佐々木□花子 佐々木 花子 OK 佐々木 花子
ジョン□スミス ジョン スミス OK ジョン スミス
ジョン□ポール□スミス ジョン ポール スミス 要確認
(空欄)
山田□(姓だけ+末尾スペース) 山田 要確認
田中(U+00A0のスペース)次郎 田中 次郎(見た目だけ。下記) 要確認
山田 山田 要確認
高橋▢▢一郎 高橋 一郎 OK 高橋 一郎

14パターン×5列の計70件すべて、期待値と一致しました。注目点は3つです。

見た目はスペースなのに分けられないとき

上の表の「田中(U+00A0)次郎」は、見た目はスペースですが、TRIMでも半角・全角スペースの置き換えでも消えない別の文字(ノーブレークスペース、U+00A0)です。Webからコピーしたデータで入ることがあります。この行は判定が「要確認」になりました。

B列の式を次のように変えると、この文字も半角スペースにそろえられます。

=IF(A2="","",TRIM(SUBSTITUTE(SUBSTITUTE(A2," "," "),UNICHAR(160)," ")))

LibreOfficeで計算したところ、「田中(U+00A0)次郎」は「田中 次郎」に整いました(UNICHARはExcel 2013以降の関数です。Excelでは未確認)。ほかの種類のスペースは検証していません。

注意点: この式ができないこと

名簿をまとめて整えたいなら

氏名のスペースの整理だけなら、この記事の式で足ります。会社名の「(株)」を「株式会社」にそろえる、電話番号の記号を取る、といった整形もまとめて関数だけで行いたい場合は、運営者が作った名簿クレンジングシート(Excelテンプレート・500円)があります。姓と名を分ける列は入っていません(この記事の式を自分で足す形になります)。50行までのお試し版は、無料の名簿クレンジングシートで中身を確かめられます。Excelの確認はWindowsデスクトップ版16のみです。

ブラウザだけで試したいときは、無料のスペース一括削除ツールも使えます(入力は外部に送信されません)。

まとめ

確認方法: この記事の式は、LibreOffice Calcで実際に再計算し、14パターンの入力(半角・全角スペース、前後のスペース、スペース2個、半角と全角の混在、スペースなし、スペース2か所、空欄、U+00A0のスペースなど)について、整えた氏名・判定・姓・名・特殊スペースを直す式の計70件が期待値と一致することを検証スクリプト(site/verify/name_split.py)で確認しました。TRIM・SUBSTITUTE・LEN・FIND・LEFT・MID・IF・UNICHARはExcelにもある関数ですが、Excelでは未確認です。外部サイトの記述は参照していません。

参考にした情報