【问题标题】:Power BI - Finding and Filtering Duplicates Across ColumnsPower BI - 跨列查找和筛选重复项
【发布时间】:2018-10-13 04:55:44
【问题描述】:

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

  • A 列,B 列,C 列,D 列,或
  • A 列,C 列,B 列,D 列

我在两个单独的列中得到了每个组合。

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

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

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

【问题讨论】:

  • 您期望得到什么输出?上面的表格去掉了彩色单元格吗?
  • 理想情况下,上面的表格只剩下一个彩色单元格实例,其他的被删除,所以剩下的就是唯一的组合。单列可能没问题,但我很犹豫是否要加入它们,因为要加入的数据非常多,所以我有点担心速度。

标签: powerbi powerquery m powerbi-desktop


【解决方案1】:

假设您从 Table1 开始,它有六列而没有标题行,其中 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"

【讨论】:

  • 抱歉,澄清一下,我使用的是 Power BI Desktop。是这样标记的,但我没有在帖子中说清楚。这似乎是 Excel VBA 路线,我认为这是一个选项,但理想情况下我想避免切换程序。 Excel 需要处理大量数据(它们的查询将数百万个潜在组合减少到几千个)。
  • 这是 M 代码,不是 Excel VBA。据我了解,最好在 Power BI 中使用 Power Query / M 导入和处理数据,然后使用 DAX 创建计算
猜你喜欢
  • 1970-01-01
  • 2020-05-06
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
相关资源
最近更新 更多