6

我有一个学年内的时间季节列表:

"Fall 12-13",
"Winter 12-13",
"Spring 12-13",
"Fall 13-14",
etc.

我想根据这些值按时间顺序对大量行进行排序。在 Excel 中,可以按自定义列表进行排序,我只需输入我希望对项目进行排序的顺序。

我在 Power Query 中需要相同的功能,但我还没有弄清楚如何做到这一点。我只能将排序顺序设置为Order.Ascendingor Order.Descending

有没有在 Power Query中实现按自定义列表排序的好方法?

4

3 回答 3

10

The second argument to Table.Sort can also be a function: either a function that takes two rows and returns an ordering between them (a la strcmp) or a function that takes a single row and returns the value that should be used for comparisons. So one way to sort the values you describe would be to say

= Table.Sort(Table, each List.PositionOf({"Fall 12-13", "Winter 12-13", "Spring 12-13", "Fall 13-14"}, [Column]))
于 2015-01-21T14:03:15.287 回答
4

我没有足够的声誉来直接解决 Ron Rosenfeld 的问题,但答案如下:

您也可以将第二个参数实现为函数列表。这些列将按照您在列表中提供的顺序进行排序。例如以下示例中的 Column、Column1、Column2。

= Table.Sort(Table,{ each List.PositionOf({"Fall 12-13", "Winter 12-13", "Spring 12-13", "Fall 13-14"}, [Column]), {"Column1",Order.Ascending}, {"Column2",Order.Ascending}})
于 2018-10-16T17:54:19.393 回答
3

制作一个包含两个字段的单独表格:Season 和 SortOrder。Season 是您的文本,SortOrder 将是一个指示顺序的整数。然后将您现有的表加入到这个季节,包括 SortOrder 列,并对其进行排序。

于 2014-10-14T19:41:19.080 回答