在PowerQuery中删除重复项就是忽略了我已经对数据进行了排序(因此删除了错误的重复项) [英] Removing duplicates in Powerquery is ignoring that I've sorted the data (so removes wrong duplicate)
本文介绍了在PowerQuery中删除重复项就是忽略了我已经对数据进行了排序(因此删除了错误的重复项)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Excel中的一个名为Table1
的表中有这个(示例)数据:
| PC Item | Priority |
|----------|----------|
| AN123169 | P3 |
| AN123169 | P1 |
| AN123169 | P1 |
| AN123169 | P1 |
| AN123169 | P3 |
按优先级顺序排序并根据PC项删除重复项后,我预计将保留P1记录。相反,我得到的是P3。
help file状态:
从查询编辑器中的Power查询表中删除所有行,其中 所选列中的值与先前的值重复。
我对此的理解是它保留第一条记录并删除后续记录?
我使用的M
代码是:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"PC Item", type text}, {"Priority", type text}}),
#"Sorted Rows" = Table.Sort(#"Changed Type",{{"PC Item", Order.Ascending}, {"Priority", Order.Ascending}}),
#"Removed Duplicates" = Table.Distinct(#"Sorted Rows", {"PC Item"})
in
#"Removed Duplicates"
在#"Sorted Rows"
之后,我有一个已正确排序的表:
| PC Item | Priority |
|----------|----------|
| AN123169 | P1 |
| AN123169 | P1 |
| AN123169 | P1 |
| AN123169 | P3 |
| AN123169 | P3 |
在#"Removed Duplicates"
之后:
| PC Item | Priority |
|----------|----------|
| AN123169 | P3 |
我一定要有一个P1记录吗?
我的第一个想法是颠倒排序,但是有了这个原始数据,我得到了作为唯一值返回的P3
:
| PC Item | Priority |
|---------|----------|
| AN310C4 | P3 |
| AN310C4 | P1 |
| AN310C4 | P1 |
使用此原始数据,我将返回P1
:
| PC Item | Priority |
|---------|----------|
| AN310C4 | P1 |
| AN310C4 | P1 |
| AN310C4 | P3 |
问题:
所以我想我的问题是-考虑到后续的M
代码似乎忽略了我已经对数据进行了排序这一事实,排序是如何工作的?
推荐答案
使用Table.Buffer
缓存中间查询结果,并在删除重复项时避免查询折叠。
样本数据:
更新M
:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"PC Item", type text}, {"Priority", type text}}),
#"Sorted Rows" = Table.Sort(#"Changed Type",{{"PC Item", Order.Ascending}, {"Priority", Order.Ascending}}),
#"Buffer Table" = Table.Buffer(#"Sorted Rows"),
#"Removed Duplicates" = Table.Distinct(#"Buffer Table", {"PC Item"})
in
#"Removed Duplicates"
结果:
我找到了使用删除表中的错误行或添加索引列(并将其删除)来"中断"查询折叠的其他方法。然而,在我看来,缓冲区似乎很好。
这篇关于在PowerQuery中删除重复项就是忽略了我已经对数据进行了排序(因此删除了错误的重复项)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文