PowerQuery(パワークエリ)で重複データを削除・抽出する方法ついて紹介します。複数列での重複データの処理や重複データを上から削除する方法も合わせて解説しています。
重複削除の方法
重複の削除を行うには、行の削除にある「重複の削除」を使用します。これにより、重複データのうち下側のデータが削除されます。

ひとつの列の重複削除
まずは、選択した列データで重複している行を削除する手順を紹介します。
手順は以下の通りです。
重複をチェックしたい列をクリックして選択する。

ホームタブにある「行の削除」の中の「重複の削除」をクリックする。

以上で重複データの削除の完了です。重複データの内の下側にあるデータが削除されます。

複数列の重複削除
次に複数の列で値が重複している行データを削除する方法を紹介します。
複数列で重複しているデータを削除するには、重複をチェックする全ての列を選択したあと「重複の削除」を行います。
手順は以下の通りです。
重複をチェックしたい全ての列のヘッダーをCtrlキーを押しながらクリックして選択する。

ホームタブにある「行の削除」の中の「重複の削除」をクリックする。

以上で複数列の重複データ削除の完了です。列2と列3の両方が重複しているデータのみが削除されます。

Sponsored link
上側の重複データを削除する
次に重複データがあった場合に、上側の重複データを削除して一番下にあるデータを残す方法を紹介します。
重複の削除を行う場合、通常は複数の重複データのうち下側のデータが削除されます。ここでは、重複削除まえに行の順番を変更することで下側のデータを残す方法を説明します。
手順は以下の通りです。
変換タブの「行の反転」を選択して、行の上下を入れ替える。

重複をチェックしたい列をクリックして選択する。

ホームタブにある「行の削除」の中の「重複の削除」をクリックする。

以上で上にある重複データ削除の完了です。下図のように重複データのうち一番下にあったデータ(最新データ)が残ります。

Sponsored link
任意の並べ替え後の重複削除
次に重複の削除を行う場合に、データを任意に並べ替えた後に削除するデータを変更する方法を紹介します。
単純にデータを並べ替えた後に重複削除すると並べ替える前のテーブルで重複削除されてしまい上手くいきません。そこで、下記の手順にあるようにTable.Buffer関数をテーブル変更を反映させる処理を入れます。
- データを任意の順番で行を並べ替える。
- 並べ替え後のテーブルの数式をTable.Buffer()で囲んで、テーブルが変更されないようにする。
- 重複を削除したい列をクリックして選択する。
- ホームタブにある「行の削除」の中の「重複の削除」を選択する。
データを並べ替えた後に重複を削除する例として、下図のデータを列3で並べ替えてから重複を削除します。
- 並べ替えを行う列をクリックして選択する。
- ホームタブの並べ替えのボタンをクリックしてデータを並べ替える。ここでは昇順をクリックする。

並べ替えを実行した後の数式バーの式「Table.Sort(変更された型,{{“列3”, Order.Ascending}})」をTable.Buffer()で囲みます。これにより重複データ削除を行うときに並べ替え後のテーブル状態を維持することができます。

重複を削除したい列を選択した後、ホームタブにある「行の削除」の中の「重複の削除」をクリックする。

以上で並べ替え後の重複データ削除の完了です。並べ替え後に重複データで一番上にあるデータが残ります。

特定カテゴリのみの重複削除
次にデータにカテゴリ列や分類列がある場合に、ひとつのカテゴリに対してのみ重複削除を行う方法を紹介します。
説明例として下図のカテゴリ列の「A」のみの重複を削除します。

まず列の追加タブにある「インデックス列」の「1から」を選択してインデックス列を追加します。

カテゴリ列とインデックス列を用いて重複を削除するカテゴリを絞り込む判定列を作成します。
- 列の追加タブの「カスタム列」を選択する。
- カテゴリ列とインデックス列を用いた判定式を入力してOKする。式の意味としてはカテゴリ列の値が「A」のときは「A」となり、それ以外の場合はインデックス列の値が入る列を作成するといったものです。
if [重複を削除したいカテゴリ列] = "対象カテゴリ" then [重複を削除したいカテゴリ列]
else [インデックス列]

- 作成した判定列と元データにあった数値列(カテゴリ列以外)をCtrlキーを押しながら複数選択する。
- ホームタブの「行の削除」の「重複の削除」をクリックする。

作成した2つの不要列を削除して作業完了です。カテゴリAのみ重複が削除されています。

Sponsored link
重複の抽出方法
重複データの抽出を行うには、行の保持にある「重複の保持」を使用します。これにより、重複データのみを抽出することができます。
- 重複を抽出したい列をクリックして選択する。
- ホームタブにある「行の保持」の中の「重複の保持」を選択する。
重複を抽出したい列を選択した後、ホームタブにある「行の保持」の中の「重複の保持」をクリックする。ここでは列2で重複の保持を行います。

以上で重複データの抽出の完了です。列2の中で重複しているBの行が抽出されます。

Sponsored link
パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。
・初心者向けおすすめ学習本
・初中級者向けおすすめ学習本
コメント