我有一张表格,其中有5个字段,其中一列包含以下内容:
中等 高 低
如果我按升序排序,数据将按字母顺序排序:
高 低 中等
在高级编辑器中,我该如何更改PowerQuery中的代码,以使其按以下方式排序:
高 中等 低
我的当前语法是:
Table.Sort(#"Filtered Rows",{{"Rating", Order.Ascending}})
我有一张表格,其中有5个字段,其中一列包含以下内容:
中等 高 低
如果我按升序排序,数据将按字母顺序排序:
高 低 中等
在高级编辑器中,我该如何更改PowerQuery中的代码,以使其按以下方式排序:
高 中等 低
我的当前语法是:
Table.Sort(#"Filtered Rows",{{"Rating", Order.Ascending}})
Order
列添加到表中。= Table.AddColumn(#"Changed Type", "Order", each if [Rating] = "High" then "1" else if [Rating] = "Medium" then "2" else "3" )
Order
列进行升序排序。或者,您可以利用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(低、中、高),但是 - 重新阅读您的问题 - 我看到您正在寻找高、中、低:因此,您可以在代码中交换“低”和“高”(2×)。
编辑2:另一个很酷的技巧是保留原始序列,并将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])))