我有一个表,其中有5个字段,列中包含以下内容:
中高低
如果我按升序排序,数据按字母顺序排序:
高、低介质
在高级编辑器中,如何更改PowerQuery中的代码,使其排序如下:
高中低
我在编辑器中的当前语法是:
Table.Sort(#“筛选行”,{“评级”,Order.Ascending})
发布于 2017-01-30 14:54:05
或者,您可以充分利用comparisonCriteria参数的Table.Sort:
=Table.Sort(#“过滤行”,(x,y) => Value.Compare(List.PositionOf({“低”,“中等”,“高”},xRating),List.PositionOf({“低”,“中等”,“高”},yRating)
编辑:这类似于Order.Ascending (低、中、高),但是--再次阅读您的问题--我看到您正在寻找高、中、低:这样您就可以在代码(2x)中切换"Low“和" High”。
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])))发布于 2017-01-30 14:40:38
可以使用以下表达式将新的Order列添加到表中:
= Table.AddColumn(#"Changed Type", "Order", each if [Rating] = "High" then "1" else if [Rating] = "Medium" then "2" else "3" )然后,只需对升序的Order列进行排序。
如果这有帮助的话请告诉我。
https://stackoverflow.com/questions/41937993
复制相似问题