Power BI-跨列查找和过滤重复项

时间:2018-10-11 19:59:22

标签: powerbi powerquery m powerbi-desktop

我有一组数据,其中四个单独的零件和零件编号(所有文本)被编译为组合。它们可以通过两种不同的方式组合,或者:

  • A列,然后B列,然后C列,然后D,或者
  • A列,然后C列,然后B列,D列

我将组合分别放在两列中。

不幸的是,这导致创建了一些重复项,因为A + B + C + D在功能上等效于A + C + B + D。当重复项位于单个列中时,删除它们就很简单。从不同的列中删除重复项比较棘手,这就是我在寻求您帮助的地方。

Example

我已经模拟了如何将项目串联在一起的示例。如您所见,在同一列中没有重复项,但是在两列中以及通常在不同的数据行中都出现了相同组合的重复项(为简单起见用颜色编码),因此它不像遍历数据那样简单。行。希望您能帮助您识别这些内容并过滤(或删除)重复项。

此外,请注意,Concat 1Concat 2之间的关系(出于这些目的)几乎没有任何意义,除了我要过滤/删除所有重复值之外,无论这些重复值是什么在同一列或两列之间。

1 个答案:

答案 0 :(得分:0)

假设您从具有六个没有标题行的列的表1开始,其中第5/6列具有这两个组合,则这将删除行和列之间的重复项。它不会删除自己行(ABBA / ABBA)上的重复项

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Column1", "Column2", "Column3", "Column4"}, "Attribute", "Value"),
#"Removed Duplicates" = Table.Distinct(#"Unpivoted Other Columns", {"Value"}),
#"Pivoted Column" = Table.Pivot(#"Removed Duplicates", List.Distinct(#"Removed Duplicates"[Attribute]), "Attribute", "Value")
in #"Pivoted Column"

如果您还需要在自己的行上删除重复项,请改用此方法:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Column1", "Column2", "Column3", "Column4"}, "Attribute", "Value"),
#"Removed Duplicates" = Table.Distinct(#"Unpivoted Other Columns", {"Value"}),
#"Pivoted Column" = Table.Pivot(#"Removed Duplicates", List.Distinct(#"Removed Duplicates"[Attribute]), "Attribute", "Value"),
#"Filtered Rows" = Table.SelectRows(#"Pivoted Column", each ([Column6] <> null) and ([Column5] <> null))
in #"Filtered Rows"