Power Queryで2つのシートの差分を抽出
Power Queryを使いましょう
概要
Power Queryにてノーコードで2つのシートを比較して、異なってるセルの値をリストの形式で抽出するテクニックです。一度作ってしまえば、後は2つのシートの中身を入れ替えて、右クリック⇒更新するだけで作業が完了するので、RPAを用いずに業務の自動化を実現可能です。
Power Query1つ出来る出来ないで大きな差になり、事務職の人にとって大きな武器の1つになると思います。
今回はPower Queryの以下の機能を利用しています
型の変換
値の置換
ピボット解除
インデックス列の追加
クエリのマージ
テクニック
手順としては以下のような感じで作成します。2つのシートのデータはどちらも社員番号等を基準にソートして揃えておきます。
シートをテーブル化しておく
型の変換で全体をテキストに変換しておく
値の置換でnullを0に置き換える
列のピボット解除でリストに変換する
インデックス列を追加して1から連番を振る
これを2つのシートで行っておく
新たにクエリでマージにて作成をする
2つのリスト化したクエリをインデックス列を元に連結(内部結合にて)
カスタム列にて2つのリストの値が一致する場合は0, 一致しない場合は-1を返す列を作成する。数式としてはいかのようなもの(列名は不一致検知とした)
if [メイン] = [比較] then 0 else -1フィルタにて、不一致検知が-1のものだけを抽出する
シートに書き出す
双方のシートで同じ社員番号のデータがあれば連結されて、2つの同じ項目の値を比較し、一致してるかしていないかで判定します。テーブルなので、データ量が増えても手直しは不要です。
次回以降は2つのシートのテーブルデータを入れ替えて、右クリック⇒更新するだけで今回の作業と同じ事をPower Queryが行ってくれるので、RPAよりも高速確実に処理出来るのがPower Queryの良い所です。
自分はこのリストを元にVBAで続きの処理を作ったりしていますので、組み合わせると余計なコードを書かず最低限のコードのみで開発も出来る利点もあります。Power Queryで出来ることをVBAでロジックを組む必要が無いのもありがたいですね。
詳細や応用編はこちら
上記のPower Queryのエントリーには、サンプルのシートもありますので、自由にダウンロードして弄り倒してみてください。
この記事が気に入ったらサポートをしてみませんか?