2つの表にてどの行が追加、削除されている?~結合の6種類~

2つの表の間でどの行が追加されているのか?削除されているのか?を適時確認・集計できるととても便利です

受注のキャンセルデータの管理やミスの発見など、2つの表の適時確認・集計の活用の場はかなり広いです

Power Query結合(マージ)には6種類が用意されていますので、それぞれを使い分けるとかなりの集計上手になれます!

今回使用するデータ

今回は1から始まる連番で管理された2つの表を使用します

結合(マージ)

結合の種類は下の画像の赤色の箇所で選択・指定できます

左外部

左の表の全てと、右の表にて左の行と一致する行を結合します

左外部

右外部

右の表の全てと、左の表にて右の行と一致する行を結合します

右外部

完全外部

*****Sponsered Link***** ************************

一致する一致しないに関わらず、2つの表に存在する行を網羅します

右の表で追加された行や削除された行が一目でわかるようになります

完全外部

内部

2つの表の間で一致する行のみ結合します

内部

左反

左の表から右の行と一致しないものを抽出します

右の表にて削除された行が一目でわかるようになります

左反

右反

右の表から左の表の行と一致しないものを抽出します

右の表で追加された行が一目でわかります

右反

<まとめ>

Power Queryの結合にて一つ問題になるのは、表現がわかりにくいことです

「最初の行」とは左にある表、「2番目の行」とは右にある表と置き換えればわかりやすいと思います

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

*****Sponsered Link***** ************************

3 件のコメント

  • 業務で使いたくPower Query学習中のものです。
    こちらの記事がとても参考になったのですが、一点質問があります。もし解決策をお持ちでしたら教えていただけると幸いです。

    「完全外部結合」によって表_左、表_右にあるデータがすべて残った状態でマージされますが、2つの表の”注文ID”、”出荷日”、”金額”は同じ扱いのデータですので、結合時には列もマージされた状態になるのが望ましいと思います。
    ※この例は結合後の展開されたところが図示されていると思いますが、”注文ID”、”注文ID.1″のように列が分かれています

    後から対になる列を一つずつマージ(列のマージ)することで解決できますが、クエリの結合時に同じ列名の列をマージした状態で結合することはできないのでしょうか?
    もしくは列のマージで対になる複数の組み合わせをまとめてマージする方法などあれば教えていただけると幸いです

    • その結合(イメージで言えば、横の結合ではなく縦の結合)であれば、クエリのマージではなく、フォルダ内のファイルを一括取得する方法で解決かと思います。

      この方法だと、例えば2020.csv、2021.csv、2022.csvのデータを1つの表にまとめられます(縦にデータが伸びていく)。当然、2023.csvがフォルダ内に加わると、パワークエリ上のデータも自動的に追加されます。

      • 通りすがりのものです。様
        コメントありがとうございます

        今回の質問は「横の結合」で質問ですので、「通りすがりのものです。」様のコメントは趣旨が全く合わないという風な印象です
        今回のコメントはどのような意図でしょうか?
        もし何か意図があればよろしくお願いします

  • コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です