[已解决] 如何通过PQ有条件得删除重复值

  [复制链接]
查看238423 | 回复177 | 2020-9-25 00:59:16 | 显示全部楼层 |阅读模式
当同一个产品料号有多个价格时,是否可以通过PQ的降序或升序,通过删除重复值,保留价格的最大值或最小值呢?

如图所示,无论是降序还是升序,PQ处理后的结果都是一样的。对于PQ删除重复值得逻辑,有些令人费解,到底删除的是头部重复记录还是尾部重复记录呢?

还请版主和大神不吝赐教。

谢谢。 10230101631371.png
10230101631372.zip (49.85 KB, 下载次数: 0)
回复

使用道具 举报

tna911 | 2020-9-25 01:05:17 | 显示全部楼层
界面操作排序后状态不稳定,可以用Table.Buffer稳固一下,比如 Table.Buffer(排序的行)
或者写排序函数的时候,里边更改写法,不要用界面操作,Table.Sort(tbl,{each [field1],each [field2]})
回复

使用道具 举报

时间 | 2020-9-25 01:09:17 | 显示全部楼层
界面操作排序后状态不稳定,可以用Table.Buffer稳固一下,比如 Table.Buffer(排序的行)
或者写排序函数的 ...


感谢大神指点。

如下所示,增加了“固定”代码,但不知如果处理上万行的记录时,是否依然有效。

let
  源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
  更改的类型 = Table.TransformColumnTypes(源,{{"ItemNo", type text}, {"Price", type number}}),
  排序的行 = Table.Sort(更改的类型,{{"ItemNo", Order.Ascending}, {"Price", Order.Descending}}),
  固定 = Table.Buffer( 排序的行),
  删除的副本 = Table.Distinct(固定, {"ItemNo"})
in
  删除的副本
回复

使用道具 举报

山鹰 | 2020-9-25 01:15:17 | 显示全部楼层
这样也可以,就不用buffer了
排序的行 = Table.Sort(更改的类型,{"ItemNo",each -[Price]})
或者还有其他的方法,具体的解法得看你的需求。
回复

使用道具 举报

宫城飞雪 | 2020-9-25 01:19:17 | 显示全部楼层
这样也可以,就不用buffer了
排序的行 = Table.Sort(更改的类型,{"ItemNo",each -})
或者还有其他的方法 ...


感谢, each [Price] 是升序排列,each -[Price] 是降序排列。

但个中原理,还不太理解。
回复

使用道具 举报

信息量 | 2020-9-25 01:24:18 | 显示全部楼层
henlihaihenliahi
回复

使用道具 举报

冷无情 | 2021-4-30 14:27:24 | 显示全部楼层
说的不错,学习了
回复

使用道具 举报

line | 2021-5-30 16:10:39 来自手机 | 显示全部楼层
太棒了,感谢唐楼主精彩的分享
回复

使用道具 举报

鬼佬 | 2021-6-21 10:33:03 来自手机 | 显示全部楼层
very good。。。。。
回复

使用道具 举报

坏孩子 | 2021-7-26 07:59:15 | 显示全部楼层
努力,努力,再努力!!!!!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则