电源查询:按自定义列表排序

zac*_*sg1 3 sorting excel powerquery

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

"Fall 12-13",
"Winter 12-13",
"Spring 12-13",
"Fall 13-14",
etc.
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 7

我没有足够的声誉来直接回答罗恩·罗森菲尔德的问题,但答案如下:

您也可以将第二个参数实现为函数列表。这些列将按照您在列表中提供的顺序进行排序。例如下面示例中的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}})
Run Code Online (Sandbox Code Playgroud)


Cur*_*her 6

Table.Sort的第二个参数也可以是一个函数:一个函数,它接受两行并返回它们之间的排序(la strcmp)或一个函数,它接受一行并返回应该用于比较的值.因此,对您描述的值进行排序的一种方法就是说

= Table.Sort(Table, each List.PositionOf({"Fall 12-13", "Winter 12-13", "Spring 12-13", "Fall 13-14"}, [Column]))
Run Code Online (Sandbox Code Playgroud)


Dic*_*ika 3

创建一个包含两个字段的单独表:Season 和 SortOrder。Season 是您的文本,SortOrder 将是一个指示顺序的整数。然后将现有表连接到 Season 上的此表,包括 SortOrder 列,并对其进行排序。