【Power Query】重複行を削除する(古い行/ 最新行)

Power Queryエディターで重複行を削除する(古い行/ 最新行)

あこちゃん
Power Queryの重複削除をやっていくよ!

Power BIやExcelでPower Query(パワークエリ)を利用しているときの必須スキル「重複行」の削除についてご紹介します!

主に以下のふたつのケースがあると思います。

  • 重複する行のうち、上の行(古い行)を残したい
  • 重複する行のうち、下の行(最新行)を残したい

これらの両方のケースについて紹介していきます!

今回は説明のため、以下のようなダミーデータを用意しました。

「五十嵐 卓哉」と「田中 夕佳」が重複しているサンプルのデータ

上のデータでは「五十嵐 卓哉」と「田中 夕佳」の2名が被っており、それぞれメールアドレスの@マークの手前が異なってます。

上の行(古い行)を残したいとき

まずは、上の行(古い行)を残す場合です。以下の画像のふたつを残します。

上の行(メールアドレスの@前が_01となっているもの)を色付けしたリスト

メールアドレスの@の手前が「_01」になっている方を残します。

まず、上記のリストをPower Queryで読み込みます。

「氏名」の列名を右クリックし、「重複の削除」を選択します。

氏名の列を右クリックして「重複の削除」を選択

すると、上の行(古い行)だけが残りました!

重複が削除され上の行(古い行)だけが残った結果

下の行(最新の行)だけを残したいとき

次に、下の行(最新の行)だけを残します。

下の行(メールアドレスの@前が_02となっているもの)を色付けしたリスト

メールアドレスの@の手前が「_02」になっている方を残します。

リストをPower Queryで読み込んだら、「列の追加」から「インデックス列」を選択します。

Power Queryエディターの「列の追加」から「インデックス列」を追加する

すると一番右の列に0もしくは1から始まるインデックス列が追加されます。

一番右の列に「インデックス列」が追加された

次に追加されたインデックス列の矢印マークから「降順で並べ替え」を選択します。

インデックス列を降順で並べ替え

降順に並び変えた直後に、上の数式を見ると上記のようになっています。

Power Queryエディタの数式の画像

数式を以下のように変更します(赤字部分)

変更前:= Table.Sort(追加されたインデックス,{{“インデックス”, Order.Descending}})

変更後:= Table.Buffer(Table.Sort(追加されたインデックス,{{“インデックス”, Order.Descending}}))

変更後の数式

最後に「氏名」の列を右クリックして「重複の削除」をクリックします。

氏名の列を右クリックして「重複の削除」を選択

重複が削除され、下の行(最新の行)だけが残りました!

メールアドレスの@の前が「_02」の行だけが残っていることが確認できました。

重複が削除され下の行(最新の行)だけが残った結果

以上で重複の削除は完了です!お疲れ様でした!