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

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

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

森田森田

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

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

はじめに

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

  • 列の分割を自動化したい方
  • データ整形・加工の工程が複数あり、かつその作業が定期的に発生する方
  • 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(パワークエリ)は「区切り位置」とほぼ変わらない難易度で、列の分割作業を自動化できるのは非常にありがたいですね。

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