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.Ascending
或Order.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)
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)
创建一个包含两个字段的单独表:Season 和 SortOrder。Season 是您的文本,SortOrder 将是一个指示顺序的整数。然后将现有表连接到 Season 上的此表,包括 SortOrder 列,并对其进行排序。