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

Power Queryで「氏」と「名」の2つの列を「氏名」へまとめたいです。

この場合、列をまとめる作業も自動化できますか?

森田森田

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

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

はじめに

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

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

前提条件

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

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

複数列を1列に連結したい場合に「列のマージ」が有効

以下のように、整形前の元データ内で列が分かれているデータを1列に連結したいケースがあります。

こうした場合、従来は数式でアンパサンド(&)を使うか、CONCATENATE関数・CONCAT関数を利用することが一般的です。

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

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

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

Power Query(パワークエリ)での列のマージ手順

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

列のマージは以下の2ステップとなります。

STEP1】リボン「変換」タブから「列のマージ」をクリック

まず、マージしたい列を選択(①)します。

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

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

そして、「列のマージ」をクリック(③)してください。

手順③の「列のマージ」コマンドは、手順①で複数列を選択しないと活性化されません。

STEP2】「列のマージ」ダイアログで任意の区切り記号を指定

「列のマージ」ダイアログが起動します。

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

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

続いて、「新しい列名」というボックスに任意の列名を入力(⑤)したら、OK」ボタンをクリック(⑥)して完了です。

手順④は「なし」でも良いですが、後々「やっぱり分割したい」という場合に備え、何かしらの区切り記号を入れておくことをおすすめします。

手順⑤で入力する前は、ボックス内にデフォルトで「結合済み」という値がセットされています。

「区切り記号」とは

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

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

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

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

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

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

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

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

【参考】マージ前の列とマージした列の両方を残すことも可能!

リボン「変換」タブの「抽出」コマンドでは、マージ前の列を上書きしてしまう仕様ですが、マージ前の列とマージした列の両方を残したい場合もあると思います。

その場合は、リボン「列の追加」タブの「列のマージ」コマンドを使いましょう。

上記の手順②をリボン「列の追加」タブに置き換えるだけで、他の手順はまったく同じです。

ケースバイケースで使い分けてくださいね。

【参考】列のマージ内容を変更したい場合は

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

すると、再度STEP2の「列のマージ」ダイアログが手順④⑤で設定した内容が入力された状態で起動します。

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

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

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

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

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

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

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

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

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

  1. マージしたい列を選択
  2. リボン「変換」タブをクリック
  3. 「列のマージ」をクリック
  4. ダイアログ内へ任意の区切り記号を選択
  5. 任意の列名を入力
  6. OK」ボタンをクリック

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

さいごに

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

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

特に、整形の元データの列が集計したい単位よりも細かく管理されている場合は必須ですよ。

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

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

森田森田

列のマージ作業は数式・関数中心で行うケースは多いですが、区切り記号を設定しようとすると、案外面倒なんですよね。

=値A&" "&B」みたいに区切り記号部分を手入力しないといけないですから。

ただ、Power Query(パワークエリ)なら、デフォルトである程度の区切り記号が用意されており、マウス操作中心なのがめちゃくちゃありがたいです。

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