特定の列(フィールド)を分割して複数の列にする方法[Power Query(パワークエリ)基礎]
AさんAさん

Power Queryで「氏名」の列を「氏」と「名」の2つの列へ分割したいです。

この場合、列の分割作業も自動化できますか?

森田森田

その場合、Power Queryエディター上の「列の分割」というコマンドが有効ですよ!

具体的な使い方について解説していきますね。

解説動画:【パワークエリ#6】データクレンジング基本テクニック13選 - 元データを綺麗にするための不備修正の作業を自動化する

この記事の内容は下記の動画でも解説しています。
コメント欄の「列の分割」の時間の部分をクリックすると列の分割の解説へジャンプできますよ!

はじめに

本題に入る前に、この記事がおすすめな方を挙げてみます。

  • 列の分割を自動化したい方
  • データ整形・加工の工程が複数あり、かつその作業が定期的に発生する方
  • Power Query(パワークエリ)の使い方を習得したい方

前提条件

この記事のテクニックを使うためには、以下の条件を満たす必要があります。

  • ExcelのバージョンはExcel2010以降(Microsoft365含む)が必須
  • Excel2010/2013ユーザーの場合、事前にMicrosoft社公式HPよりPower Query(パワークエリ)のダウンロードが必要(Excel2016以降は標準機能)
  • Power Query(パワークエリ)の概要を理解していること
    →まず、以下の記事で概要を把握することをおすすめします。

1列を複数列へ分割したい場合に「列の分割」が有効

以下のように、整形前の元データ内で1列を複数列に分割したいケースがあります。

こうした場合、従来のワークシートでは以下の3パターンが主流です。

  1. 置換+ワイルドカードの組み合わせ
  2. 「区切り位置」の利用
  3. LEFTRIGHTMID関数+FIND関数の組み合わせ

しかし、Power Query(パワークエリ)なら、こうした列の分割を自動化できます。

しかも、他のデータの整形・加工作業が複数工程あるなら、なおさら便利ですよ!

では、Power Query(パワークエリ)での列の分割手順を確認していきましょう。

Power Query(パワークエリ)での列の分割手順

今回の前提として、列の分割を行う対象テーブルはブック内にあり、事前にPower Queryエディターに取り込んでいる状態からスタートするとします。(ブック内のデータ取得について復習したい方は下記記事を参照)

列の分割は以下の2ステップとなります。

STEP1】リボン「変換」タブから「列の分割」をクリック

まず、分割したい列を選択(①)します。

これは、通常のワークシート上の操作と同じ感覚で問題ありません。

続いて、リボン「変換」タブをクリック(②)します。

そして、「列の分割」をクリック(③)し、任意の分割を選択(④)してください。

今回の手順④は「区切り記号による分割」にしています。

手順②は「ホーム」タブでもOKです。

実務上、手順④は「区切り記号による分割」がほとんどです。(次点は「文字数による分割」)

STEP2】「区切り記号による列の分割」ダイアログで任意の区切り記号を指定

「区切り記号による列の分割」ダイアログが起動します。

まず、ダイアログ内で任意の区切り記号を選択(⑤)してください。

今回は「スペース」にしてみます。

あとは、任意の分割の種類を選択(⑥)したら、OK」ボタンをクリック(⑦)して完了です。

手順⑥はデフォルトが「区切り記号の出現ごと」です。基本はこのままで問題ありません。

「区切り記号」とは

ちなみに、区切り記号とは、文字通りデータとデータを区切る記号のことです。

Power Queryエディター上でデフォルトの選択肢で用意されているものは以下の内容です。

  • コロン(:
  • コンマ/カンマ(,
  • 等号(=
  • セミコロン(;
  • スペース( )

なお、「--カスタム--」を選べば、上記にないスラッシュ(/)などの区切り記号を設定することも可能ですよ。

デフォルトにある「スペース」は半角スペースとなります。もし、全角スペースが希望の場合は、「--カスタム--」を選択し、設定用のボックスへ全角スペースを入力しましょう。

「プレビュー」ウィンドウ上で列の分割が確認できたらOK

「プレビュー」ウィンドウを見ると、無事設定どおりに列が分割されていますね!

あとは、その他の処理を行い、任意の方法でデータを出力すれば完了です。

【参考】対象列に2つ以上の区切り記号がある場合は

データによっては、区切り記号が複数ある場合もあります。

その場合、上記の手順⑥の設定が重要です。

3種類の設定内容でどういう結果が得られるか、以下をご覧ください。

基本はデフォルトの「区切り記号の出現ごと」で問題ないですが、ケースバイケースで設定値を変更しましょう。

【参考】列の分割内容を変更したい場合は

もし、あとで列の分割条件を変更したい場合は、「クエリの設定」ウィンドウの任意のステップをダブルクリック、もしくは歯車マークをクリックしましょう。

すると、再度STEP2の「区切り記号による列の分割」ダイアログが手順⑤⑥で設定した内容が入力された状態で起動します。

あとは、区切り記号や分割の種類を直して、再度「OK」ボタンをクリックすれば良いですね。

なお、そもそも分割したい列を間違えた場合は、「クエリの設定」ウィンドウの該当のステップを一旦「×」で削除し、改めて列の分割を行えばOKです。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_PowerQueryデータ整形_列の分割.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ファイルを開いたら、列の分割を行う前に、Power Queryエディターを起動させてくださいね。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリックしてください。

  1. リボン「データ」タブをクリック
  2. 「クエリと接続」をクリック
  3. 「社員マスタ(列の分割)」クエリをダブルクリック

ここまで準備ができたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 分割したい列を選択
  2. リボン「変換」タブをクリック
  3. 「列の分割」をクリック
  4. 任意の分割を選択
  5. ダイアログ内で任意の区切り記号を選択
  6. 任意の分割の種類を選択
  7. OK」ボタンをクリック

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

列の分割はPower Query(パワークエリ)における基本中の基本のテクニックです。

特に、整形の元データの1列に複数の情報が入っていて、そのままでは集計できない場合は必須ですね。

なお、Power Query(パワークエリ)の各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。


ご参考になれば幸いですm(_ _)m

森田森田

列の分割作業は「区切り位置」がハードル低めですが、元データが変わる度に毎回手作業が発生するので、非効率です。

一方、数式・関数中心は一度セットすれば元データが変わっても自動化できますが、複数の関数を組み合わせるため難易度はまあまあ高め。

そう考えると、Power Query(パワークエリ)は「区切り位置」とほぼ変わらない難易度で、列の分割作業を自動化できるのは非常にありがたいですね。

ぜひ、ご興味を持った方はお試しください!