エクセルのデータで文字を分割する場合、規則性のあるデータであれば簡単に文字を分割できます。例えば、「山田 太郎」といったスペースで区切られた氏名を、苗字と名前に分けることが挙げられます。
データ量がそれほど多くなければ手作業で行うことも可能ですが、20件から30件以上になると効率が悪くなります。先日紹介したFIND関数やLEFT関数、RIGHT関数を使う方法もありますが、あまりにも大量、例えば数百件などのデータがある場合は、手作業や関数では限界があります。
そこでおすすめなのがパワークエリです。
この記事では、パワークエリを使って氏名を苗字と名前に分ける方法を、初心者向けにわかりやすく解説します。
氏名分割後の例

実際には他にもたくさんデータがあることが多いですが、シンプルな例で、氏名のみのデータです。このデータを苗字と名前に分割します。
分割のためのデータ条件
条件:氏名の間の文字等が同じ、この例では全角のスペースが入っています。半角と全角が混ぜっている場合は、全角のみ分割されます。
この記事のきっかけ
この記事を書こうと思ったきっかけは、千人を超える社員データの氏名を苗字と名前で区切る必要があったことです。関数でも可能ではありますが、関数を使った場合は最終的に値のみのデータに変更する手間がかかります。
そこで、パワークエリを使えば、より効率的かつ柔軟にデータを処理できます。
パワークエリで簡単に氏名を分割する方法
まず、もととなるデータの読み込みには、いくつかあります。ここでは、ブック上のシートをテーブル化する方法で説明します。
データ内をアクティブにしている状態(例えばセルA2を選択状態)で、[挿入]>[テーブル]をクリックします。

→ 「テーブルの作成」が表示されたら、「OK」をクリックします。

→ テーブル化された状態

自動でスタイル設定されます。変更したい場合は次を参考に変更します。
[データ]>[テーブルまたは範囲から]をクリックします。

→ パワークエリが開きます。
パワークエリの分割は、元データを分割します。元のデータを残したい場合は、パワークエリ上で「氏名」のコピーを作っておきます。コピーが必要ではない場合は、このステップを飛ばします。
[列の追加]>[カスタム列]をクリックします。

以下2つを設定し、挿入をクリックします。
- 新しい列名(変えたい列名)
- コピーする列

→ 設定例

→ コピーされた状態です。

[変換]>[列の分割]>[区切り記号による分割]をクリックします

「区切り文字で列を分割」ダイアログボックスが表示されます。この時点で既にスペースを認識しています。「OK」をクリックします。これで氏名が苗字と名前に分割されます。

→ 氏名が分割されました。

パワークエリエディターの「ホーム」タブで、[ファイル]>[閉じて読み込む]をクリックします。これで分割されたデータがエクセルに読み込まれます。

→ シートに読み込みされた状態です。自動でスタイル設定されます。

まとめ
エクセルで大量のデータを効率的に処理するためには、パワークエリの活用が非常に便利で有効です。
この記事では、パワークエリを使って氏名を苗字と名前に分割する方法について説明しました。特に、千人を超える社員データのような大量のデータを扱う場合、手作業や関数では時間と労力がかかりすぎてしまいます。
パワークエリを使うことで、以下のようなメリットがあります。
- 大量データの迅速な処理
- データ変換の柔軟性
- 再利用可能なクエリ