如何在Power Query中获取第N大值?现有代码报错求助
Power Query 获取第N大值的解决方法
错误代码问题分析
你提供的代码存在两处语法错误:
- 错误嵌套了
List.Max函数,排序操作应该直接作用于Charge字段组成的列表,无需先调用List.Max - 参数位置错误:
Order.Descending是List.Sort的第二个参数,不应放在列表内部;同时索引调用的括号位置也不正确
修正后的排序实现代码
= List.Sort({[#"Charge1"],[#"Charge2"],[#"Charge3"],[#"Charge4"],[#"Charge5"],[#"Charge6"],[#"Charge7"],[#"Charge8"],[#"Charge9"],[#"Charge10"]}, Order.Descending){1}
说明:Power Query列表索引从0开始,降序排序后索引{1}对应的就是第二大值。
其他获取第N大值的方法
方法1:使用List.NthMax(推荐,适用于新版Power Query)
该函数直接支持获取第N大值,参数N从1开始计数:
= List.NthMax({[#"Charge1"],[#"Charge2"],[#"Charge3"],[#"Charge4"],[#"Charge5"],[#"Charge6"],[#"Charge7"],[#"Charge8"],[#"Charge9"],[#"Charge10"]}, 2)
方法2:移除最大值后取剩余最大值(适用于旧版Power Query)
先移除列表中的所有最大值,再取剩余元素的最大值,即为第二大值:
= List.Max(List.RemoveItems({[#"Charge1"],[#"Charge2"],[#"Charge3"],[#"Charge4"],[#"Charge5"],[#"Charge6"],[#"Charge7"],[#"Charge8"],[#"Charge9"],[#"Charge10"]}, {List.Max({[#"Charge1"],[#"Charge2"],[#"Charge3"],[#"Charge4"],[#"Charge5"],[#"Charge6"],[#"Charge7"],[#"Charge8"],[#"Charge9"],[#"Charge10"]})}))
内容的提问来源于stack exchange,提问作者Orfevre
相关产品推荐
相关产品推荐

