📊

Power Queryで重複した行を削除する

2024/02/26に公開

はじめに

テーブル内の重複したレコードを削除したり、FactテーブルからDimensionテーブルを作るなど、特定の列から一意の値を抽出したい場合があるが、どうすれば実現できるのか?

Power Queryの「重複の削除」機能で実現できる

このように重複する行を削除したい時、Power Queryの「重複の削除」機能または「グループ化」機能で実現できる。本文は主に「重複の削除」機能での実現を紹介する。

「重複の削除」機能

https://learn.microsoft.com/ja-jp/power-query/working-with-duplicates

Power Queryの「ホーム」リボン⇒「行の削除」の下にある「重複の削除」機能を利用することで、クエリテーブルから重複する行を削除することができる。

重複削除

重複の判定仕様

重複しているかどうかの判定は、「重複の削除」を押す時に選択状態にある列に対して行われる。複数のレコードの選択されたすべての列の値が全部一致する場合、重複していると判断され、1レコードのみが残される。

1列に対して重複削除する例

例えば下記都市ごとの人口データを持つテーブルがある。同じ国には複数の都市のレコードが存在する。

テーブル1

このテーブルから国名のDimentionテーブルを作りたい場合、以下のように「国名」列以外の列を先に削除してから「重複の削除」をするといい。
「重複の削除」前のテーブル

1列重複削除前

「重複の削除」後に得られたDimentionテーブル

1列重複削除

複数列に対して重複削除する例

例えば下記都市ごとの人口データを持つテーブルがある。各都市がそれぞれ2行存在する。

テーブル2

「国名」と「都市名」の2列を選択して「重複の削除」をすると、各都市がそれぞれ1行になった。

複数列重複削除

全部の列を選択した状態で「重複の削除」をする場合、レコードのすべての値が完全に一致するレコードのみが重複と判定される。今回の例でいうと、日本の都市は2行の人口の数字が違うので、重複と判定されず、全部残った。

全列重複削除

参考

https://learn.microsoft.com/ja-jp/power-query/working-with-duplicates

https://learn.microsoft.com/ja-jp/power-query/group-by

BIによる業務改善推進

Discussion