PR

Excel TEXTSPLIT関数の使い方|名前を姓・名に分割【半角・全角スペース混在にも対応】

Excel
記事内に広告が含まれています。

Excelで氏名データを扱っていると、

  • 「姓」と「名」を別々の列に分けたい
  • スペース区切りのデータを整理したい
  • CSVやシステム出力を列ごとに分割したい

と思うことはありませんか?

従来は、FIND関数やLEFT関数、MID関数を組み合わせる必要があり、数式が複雑になりがちでした。

さらに実務では、

  • 半角スペース
  • 全角スペース

が混在していることも多く、数式管理がかなり大変です。

こうした文字列分割を簡単にできるのが、Excelの「TEXTSPLIT関数」です。
TEXTSPLIT関数を使うことで、一発で文字列を分割できます。

本記事では、

  • TEXTSPLIT関数の使い方
  • FIND関数との違い
  • 半角・全角スペース混在への対応
  • 実務で便利な活用例
  • よくあるエラーやFAQ

まで、実務目線でわかりやすく解説します。

Excelでは、「文字列を分割したい」だけでなく、「数字だけ取り出したい」というケースもあります。
👉商品コードや型番から数値を抽出したい場合は、こちらの記事もおすすめです。

Excelで名前を姓・名に分ける方法【TEXTSPLIT】

まずは、TEXTSPLIT関数を使って氏名を分割する方法を紹介します。

使用する数式

例えば、A列に次のようなデータがあるとします。

この場合、次の数式を入力します。

=TEXTSPLIT(A2,” “)

実行結果

数式を入力すると、自動的に横方向へ展開されます。

TEXTSPLIT関数は「区切り文字」を基準にデータを分割します。

今回の場合は ” ” (半角スペース)を区切り文字として指定しています。

TEXTSPLIT関数とは?

TEXTSPLIT関数は、区切り文字を基準に文字列を自動分割できる関数です。
氏名分割やCSV整理など、実務のデータ加工で非常に便利です。

TEXTSPLIT関数の構文

TEXTSPLIT関数の構文は以下のとおりです。

=TEXTSPLIT(テキスト,列区切り記号,[行区切り記号],[空のセルは無視],[一致モード],[パディング値])

それぞれの引数の意味は以下のとおりです。

引数意味
テキスト分割するテキスト
列区切り記号横方向(列)へ分割するときの区切り文字を指定
行区切り記号
※省略可
縦方向(行)へ分割するときの区切り文字を指定
空のセルは無視
※省略可
連続した区切り文字があった場合、空白セルを無視するか指定
・TRUE=空白を無視 ※既定
・FALSE=空白も保持
一致モード
※省略可
区切り文字の大文字・小文字を区別するか指定
・0=区別する ※既定
・1=区別しない
パディング値
※省略可
分割後のデータ数が揃わない場合に、空欄へ入れる値を指定

例えば、

=TEXTSPLIT(A2,",")

これは、

  • A2セルの文字列を
  • カンマ区切りで分割する

という意味です。

TEXTSPLIT関数の基本的な使い方

■カンマ区切りを分割する

=TEXTSPLIT(A2,",")

■改行ごとに分割する

=TEXTSPLIT(A2,CHAR(10))

CHAR(10) は改行コードです。

■縦方向に分割する

第3引数を使うことで、縦方向への分割も可能です。
第2引数は空欄にしましょう。

=TEXTSPLIT(A2,,",")

■複数区切りを指定する

TEXTSPLIT関数では、{}で囲むことにより、複数の区切り文字を指定することができます。

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

TEXTSPLIT関数はなぜ便利?文字列分割が劇的に楽になる理由

TEXTSPLIT関数の最大のメリットは、「複雑な文字列分割をシンプルに書ける」ことです。

特に実務では、

  • 半角・全角混在
  • 区切り文字が複数ある
  • システム出力データが汚い

などのケースが多く、従来関数ではかなり大変でした。

従来の方法(FIND関数)は複雑になりやすい

TEXTSPLIT関数が登場する前は、FIND関数などを組み合わせて処理する必要がありました。

例えば、「山田 太郎」から姓を取り出す場合は、

=LEFT(A2,FIND(" ",A2)-1)

名を取り出す場合は、

=MID(A2,FIND(" ",A2)+1,LEN(A2))

のような数式が必要でした。

さらに、

  • 半角スペース
  • 全角スペース

が混在すると、さらに複雑になります。

=LEFT(A2,IFERROR(FIND(" ",A2),FIND(" ",A2))-1)

このように、

  • FIND
  • IFERROR
  • LEFT
  • MID
  • LEN

が増えていき、管理がかなり大変になります。

TEXTSPLITなら複数区切りを簡単に指定できる

TEXTSPLIT関数では、複数の区切り文字を簡単に指定できます。

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

この数式では、

  • 半角スペース
  • 全角スペース

両方を区切り文字として扱います。

従来関数では複雑だった処理を、シンプルに書けるのが大きなメリットです。

比較表で表すと、以下のようなイメージです。
TEXTSPLITが、多くの点で従来の方法(FIND関数)より優れています。

方法数式の短さ複数区切り対応保守性
FIND関数
TEXTSPLIT関数

TEXTSPLITは「半角・全角スペース混在」に強い

実務では、スペースが統一されていないデータが非常に多いです。

例えば、
・山田 太郎
・佐藤 花子
・鈴木 太郎
のように、半角スペースと全角スペースが混在しているケースがあります。

これは、

  • CSV取込
  • システム出力
  • 他社データ
  • Webからのコピペ

などでよく発生します。

TEXTSPLIT関数なら、先ほど紹介したように第2引数で「半角スペース」と「全角スペース」を指定するだけで柔軟に対応できます。

Excelでは、半角・全角の違いで「一致しているように見えるのに一致しない」ことがあります。
👉XLOOKUPやVLOOKUPで検索に失敗する原因にもなるため、こちらも合わせて確認しておくと便利です。

TEXTSPLIT関数の活用例【実務で便利な使い方】

TEXTSPLIT関数は、単なる「文字列分割」だけではありません。

実務データ整理でも非常に便利です。

システム出力データの整理

例えば、

1001 東京営業部 田中

のようなデータを列ごとに分割できます。

システムから出力されたデータ整理に便利です。

CSVデータの加工

東京,大阪,名古屋

のようなCSV形式データも簡単に分割できます。

=TEXTSPLIT(A2,”,”)

分割・整形したデータは、その後に検索処理へ使うケースも多いです。
👉XLOOKUPを部分一致で使いたい場合は、こちらの記事も参考になります。

商品タグの分割

例えば、

赤,青,防水,軽量

のようなタグデータ整理にも便利です。

ECサイトでは、商品タグや検索キーワードをカンマ区切りで管理していることがあります。
TEXTSPLIT関数を使えば、タグを列ごとに分割して整理できます。

TEXTSPLIT関数でデータを整理した後は、FILTER関数で必要なデータだけを抽出するとさらに便利です。
👉Excel 365の新関数を組み合わせることで、実務効率を大きく改善できます。

分割したデータから重複を除外したい場合は、UNIQUE関数も非常に便利です。
👉顧客一覧や商品タグ整理などでよく使われます。

TEXTSPLIT関数が使えない・入力できない原因

状況によっては、TEXTSPLIT関数が使えない・エラーことが発生する可能性があります。
今回は主な原因を紹介します。

Excelのバージョンが古い

TEXTSPLIT関数は、

  • Excel 365
  • Excel 2021以降

で利用できます。

Excel 2019以前では使用できません。

#SPILL! エラーが出る

TEXTSPLIT関数は結果を自動展開します。

展開先セルにデータが入っていると「#SPILL!」エラーになります。

不要なデータを削除してください。

TEXTSPLIT関数では、結果を自動展開する「スピル」が原因でエラーになることがあります。
👉SPILL! エラーの詳しい原因や解決方法は、こちらの記事で図解付きで解説しています。

区切り文字が一致していない

例えば、

  • 全角スペース
  • 半角スペース

が混在しているのに、どちらかしか指定していない場合、うまく分割できないことがあります。

その場合は、

=TEXTSPLIT(A2,{” “,” ”})

のように複数指定を使用してください。

Excelでは、文字列が自動的に日付へ変換されたり、先頭のゼロが消えたりすることがあります。
👉データ整形時によく起きるトラブルなので、こちらも合わせて確認しておくと安心です。

よくある質問(FAQ)

TEXTSPLIT関数はExcel 2019で使えますか?

使えません。
Excel 365 または Excel 2021以降で利用できます。

全角スペースだけでも分割できますか?

できます。
=TEXTSPLIT(A2,” ”)
で指定できます。

複数の区切り文字を指定できますか?

可能です。
例えば、
=TEXTSPLIT(A2,{“,”,”/”,” “})
のように、カンマ・スラッシュなど異なる区切り文字を同時に指定できます。

縦方向に分割することはできますか?

できます。
=TEXTSPLIT(A2,,”,”)
のように第3引数を使うことで、縦方向に分割することができます。

TEXTSPLITとTEXTBEFORE・TEXTAFTERの違いは何ですか?

・TEXTSPLIT → 複数に分割
・TEXTBEFORE → 区切り前を取得
・TEXTAFTER → 区切り後を取得
という違いがあります。

以下比較表をまとめてみました。

状況に応じて使い分けしてみてください。

TEXTSPLIT関数で複数セルに分割されないのはなぜ?

考えられる原因としては、
・スピル範囲不足
・区切り文字違い
・Excelバージョンが古い
が考えられます。

TEXTSPLIT以外にも、Excel 365には便利な新関数が多数追加されています。
👉FILTER・UNIQUE・XLOOKUPなどを組み合わせることで、データ整理をさらに効率化できます。

まとめ:TEXTSPLIT関数で文字列分割を効率化しよう

従来のExcelでは、

  • FIND
  • LEFT
  • MID
  • LEN
  • IFERROR

などを組み合わせる必要があり、文字列分割はかなり複雑でした。

特に、

  • 半角・全角スペース混在
  • CSVデータ
  • システム出力
  • 区切り文字が複数あるデータ

への対応は大変です。

しかしTEXTSPLIT関数なら、

=TEXTSPLIT(A2,{” “,” ”})

のようなシンプルな数式だけで柔軟に処理できます。

特に、

  • 氏名分割
  • CSV整理
  • タグ分割
  • システム出力加工

など、実務で非常に便利です。

Excel 365 / Excel 2021を使っているなら、ぜひ活用してみてください。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

タイトルとURLをコピーしました