PowerQuery【11】重複行の削除(上の行/下の行)

PowerQueryへのリンク
PowerQuery全体:PowerQuery【01】PowerQuery(パワークエリー)で出来ること
PowerQueryの手順:PowerQuery【02】PowerQuery(パワークエリー)の動かし方

重複行の削除方法について案内します。

↓こんな時の除外方法です。CSV取込後などで、重複行を削除するときの対応です。

【参考】
↓PowerQueryでないとき
【Excel】重複がある際に適切なデータを選ぶ(COUNTIF関数を使う)

↓2つのテーブルを結合したときの、重複の除外方法
PowerQuery【09】キー重複の場合に適切な行のデータを取り出す

下の重複行の削除

PowerQueryエディタ上で、以下で重複は削除できます。
ホームタブ/対象列を選択/行の削除/重複の削除

ただし、これは、重複データのうち、下の行が除外されます。
上の行を除外するときは、もう一工夫必要です。

上の重複行の削除

「上の行」を除外する際の完成形

いったん「インデックス列」を追加して、Bufferで囲んでから
インデックスを降順でソート+Noを昇順でソートして、
それから重複を削除します。

【数式の表示】

= Excel.CurrentWorkbook(){[Name=”テーブル10″]}[Content]
= Table.TransformColumnTypes(ソース,{{“No”, type text}, {“name”, type text}})
= Table.AddIndexColumn(変更された型, “インデックス”, 0, 1, Int64.Type)
= Table.Buffer(Table.Sort(追加されたインデックス,{{“No”, Order.Ascending}, {“インデックス”, Order.Descending}}))
= Table.Distinct(並べ替えられた行, {“No”})

さて実際の手順です。

①テーブルを読み込んだPowerQueryエディタ画面

②型を変更【数値→文字】

③列の追加タブ/インデックス列
→インデックス列が追加される

④まず、Noを昇順/インデックス列を降順でソートする。

④式を手修正する:Tabel.Bufferで囲む

数式バー上で、Table.Bufferで式を囲む
(数式バーの表示が無ければ、「表示/数式バーに「v」」

⑤ホームタブ/行の削除/重複の削除

⑥重複データの上の行が削除された。

⑦閉じて読み込む、クエリの名前変更、シートの名前変更を実施する。