excel - 使用 Power Query 按特定顺序排序

标签 excel powerpivot powerquery

我有一个包含 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/

相关文章:

javascript - 生成翻译 CSV 文件

python - openpyxl - 如何用前导单引号放置值

sql - 如何返回特定订单类型的每个帐户的最短日期

powerbi - 解析 Power BI 中的名称值对列表

powerbi - DirectQuery 不支持查询 (PowerBI/PowerQuery)

excel - For循环Excel VBA中的变量限制

vba - 使用 WScript.Shell.Run 的 Excel VBA 错误

powerpivot - Power Pivot、Power Query 和 Power BI 之间的区别

excel - 在 PowerPivot 中滚动 12 个月总和

excel - Power Query 中的计算