エクセルで「山田 太郎」のように姓名がスペースで区切られたデータを、姓と名に分割したいとき、どの関数を使えばよいか迷ったことはありませんか?
この記事では【Excel】エクセルでスペースでセルを分ける・分割する方法(関数・姓名・氏名の分け方)について解説していきます。
ポイントは
・区切り位置機能で素早くセルを分割する
・半角・全角スペース混在時の対処法
です。
それでは詳しく見ていきましょう。
エクセルでスペースでセルを分ける方法1【LEFT関数とFIND関数で姓を取り出す】
スペースで区切られたデータから姓(左側の文字列)を取り出すには、LEFT関数とFIND関数を組み合わせる方法が基本です。
まずは以下のようなサンプルデータを用意してみましょう。
| 行 | A列:氏名 | B列:姓 | C列:名 |
|---|---|---|---|
| 1 | 氏名 | 姓 | 名 |
| 2 | 柏餅 太郎 | ||
| 3 | マシュマロ 花子 | ||
| 4 | チョコ 次郎 | ||
| 5 | アボカド 三郎 | ||
| 6 | カボチャ 四郎 |

B2セルに姓を取り出す数式を入力します。

この数式の仕組みを詳しく見てみましょう。
まずFIND関数が「A2セルの中でスペースが何文字目にあるか」を調べます。
「柏餅 太郎」の場合、スペースは3文字目にあるためFIND関数は「3」を返します。
そこから1を引いた「2」がLEFT関数の文字数引数になり、A2セルの左から2文字(「柏餅」)が取り出されます。
FIND関数はスペースの位置(何文字目か)を返すため、そこから1を引くことでスペースを除いた姓の文字数が求められる点がポイントです。
B2に数式を入力後、フィルハンドルをB6までドラッグすれば全行の姓が一括で取り出せます。

姓の取り出しは「=LEFT(A2,FIND(” “,A2)-1)」を使います。FIND関数でスペースの位置を特定し、そこから1を引いた文字数をLEFT関数に渡すことで姓だけを抽出できます。
エクセルでスペースでセルを分ける方法2【RIGHT関数・LEN関数・FIND関数で名を取り出す】
スペースより右側の文字列(名)を取り出すには、RIGHT関数・LEN関数・FIND関数を組み合わせる方法を使います。
C2セルに次の数式を入力します。

この数式の仕組みを順番に見ていきましょう。
LEN関数は「A2セルの文字数全体」を返します。
「柏餅 太郎」の場合、LEN関数は「5」を返します(スペース含む5文字)。
FIND関数はスペースの位置「3」を返します。
「5−3=2」がRIGHT関数の文字数引数になり、A2セルの右から2文字(「太郎」)が取り出されます。
つまり「全体の文字数−スペースの位置」を計算することで、スペース以降の文字数が求められます。
LEN関数で全体の文字数を把握し、FIND関数でスペースの位置を引くことで名の文字数が動的に計算されるため、名前の文字数が異なるデータにも対応できます。
C2に数式を入力後、フィルハンドルでC6までコピーすれば全行の名が一括取得できます。

名の取り出しは「=RIGHT(A2,LEN(A2)-FIND(” “,A2))」を使います。全体の文字数からスペースの位置を引くことで名の文字数が求められ、文字数が異なる名前にも対応できます。
エクセルでスペースでセルを分ける方法3【区切り位置機能で素早く分割する】
関数を使わずに素早くセルを分割したい場合は、「区切り位置」機能を使う方法が便利です。
分割したいデータが入っているA2:A6を選択し、「データ」タブの「データツール」グループにある「区切り位置」をクリックします。

「区切り位置指定ウィザード」が開いたら、「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択して「次へ」をクリックします。
区切り文字の選択画面で「スペース」にチェックを入れて「次へ」をクリックします。

列のデータ形式を選択して「完了」をクリックすると、スペースを境にデータが隣の列に分割されます。
区切り位置機能はもとのセルのデータが分割結果で上書きされるため、必要に応じて元データを別列にコピーしてから操作することをおすすめします。
また、分割先の列にすでにデータが入っている場合は上書きされてしまうため、分割先の列を空けておく必要があります。

一度きりの変換作業で大量のデータを素早く分割したい場合は、関数よりもこちらの方法が効率的です。
区切り位置機能は「データ」タブ→「区切り位置」→区切り文字で「スペース」を選択→「完了」の手順で使います。元データが上書きされるため、事前に元データを別列にコピーしておくと安心です。
エクセルでスペースでセルを分ける方法4【半角・全角スペース混在時の対処法】
データによっては半角スペースと全角スペースが混在していることがあります。
FIND関数はデフォルトで半角スペース(” “)を検索するため、全角スペース(「 」)が使われているセルでは正しく分割できません。
この問題を解決するには、SUBSTITUTE関数で全角スペースを半角スペースに統一してから分割する方法が有効です。
姓を取り出す数式を次のように書き換えます。
SUBSTITUTE関数の第2引数に全角スペース(「 」)、第3引数に半角スペース(” “)を指定することで、A2セル内の全角スペースを半角スペースに置き換えてから処理します。
同様に名を取り出す数式も次のように修正します。
数式が長くなる場合は、別のセルにSUBSTITUTE関数で変換した値をあらかじめ出しておき、そのセルを参照する形にするとすっきりします。
データを受け取る段階で半角・全角を統一しておくことが根本的な解決策で、入力規則やマクロで入力時に統一する設定も検討に値します。
半角・全角スペース混在時はSUBSTITUTE関数で全角スペースを半角に変換してからLEFT・RIGHT・FIND関数を適用します。数式が長くなる場合は変換結果を別セルに出して参照すると管理しやすくなります。
エクセルでスペースでセルを分ける方法5【Excel2019以降か 365のTEXTSPLIT関数を使う方法】
Excel 365や2019以降ではでは、スペースで文字列を分割するための新関数TEXTSPLIT関数が利用できます。
TEXTSPLIT関数を使うと、LEFT・RIGHT・FIND関数を組み合わせた複雑な数式を使わずに、シンプルな記述で文字列を分割できます。
B2セルに次の数式を入力するだけで、姓と名が自動的に隣のセルに展開されます。

第1引数に分割したい文字列(A2)、第2引数に区切り文字(半角スペース” “)を指定します。
この数式を入力すると、B2に「柏餅」、C2に「太郎」が自動的に展開されます。
TEXTSPLIT関数はスピル機能によって結果を複数のセルに自動展開するため、1つの数式を入力するだけで分割が完了します。
全角スペースで分割したい場合はTEXTSPLIT(A2,” ”)のように第2引数を全角スペースにするだけで対応できる点もシンプルで便利です。
TEXTSPLIT関数はExcel 365・Excel 2021以降で使用可能で、それ以前のバージョンでは利用できないため、使用環境を確認してから活用しましょう。
Excel 365ではTEXTSPLIT関数を使うと「=TEXTSPLIT(A2,” “)」だけでスペースによる分割が完結します。スピル機能で結果が自動展開されるため、複雑な関数の組み合わせが不要になります。
まとめ エクセルでスペースでセルを分割(姓名や氏名・名字や名前・最初のスペースで区切り・文字列)
エクセルでスペースでセルを分割する方法をまとめると、次のとおりです。
姓の取り出しは「=LEFT(A2,FIND(” “,A2)-1)」を使い、FIND関数でスペースの位置を特定してLEFT関数に渡します。
名の取り出しは「=RIGHT(A2,LEN(A2)-FIND(” “,A2))」を使い、全体の文字数からスペースの位置を引いた文字数をRIGHT関数に渡します。
関数を使わずに素早く分割したい場合は「データ」タブの「区切り位置」機能を使い、区切り文字にスペースを指定するだけで一括分割できます。
半角・全角スペースが混在している場合はSUBSTITUTE関数で全角スペースを半角に変換してから分割処理を行います。
Excel 365ではTEXTSPLIT関数を使うことで「=TEXTSPLIT(A2,” “)」のシンプルな記述だけで分割が完結します。
スペースによるセル分割を使いこなすことで、名簿やリストデータの整理作業が大幅に効率化できます。
ぜひ今回ご紹介した方法を実際のデータ整理に活かしてみてください。


コメント