我有一个包含 5 个字段的表,其中一列包含以下内容:
中 高的 低
如果我按升序排序,则数据按字母顺序排序:
高 低的 中等
在高级编辑器中,如何更改 PowerQuery 中的代码,使其排序如下:
高 中等的 低
我当前在编辑器中的语法是这样的:
Table.Sort(#"筛选行",{{"评级", Order.Ascending}})
最佳答案
或者,您可以充分利用 Table.Sort 的 ComparisonCriteria 参数的全部功能:
= Table.Sort(#"Filtered Rows", (x,y) => Value.Compare(List.PositionOf({"Low","Medium","High"},x[Rating]),List.PositionOf({"Low","Medium","High"},y[Rating])))
编辑:这就像 Order.Ascending(低、中、高),但是 - 再次阅读你的问题 - 我看到你正在寻找高、中、低:所以你可以切换“低”和“代码中的“高”(2x)。
Edit2:另一个很酷的技巧是保留原始序列并将 Value.Compare 的结果乘以 -1 以反转排序顺序:
= Table.Sort(#"Filtered Rows", (x,y) => -1 * Value.Compare(List.PositionOf({"Low","Medium","High"},x[Rating]),List.PositionOf({"Low","Medium","High"},y[Rating])))
关于excel - 使用 Power Query 按特定顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41937993/