订单文本和数字列

Order text and numbers column

我在 PowerBI 中有一个包含文本和数字的列,我想这样排序:

Date
J1
J2
J3
J4
J5
J6
J7
J8
J9
J10
J11

但是当我尝试那样排序(字母顺序)时,结果是这样的:

Date
J1
J10
J11
J2
J3
J4
J5
J6
J7
J8
J9

J2跟随J1而不是J10如何解决?我认为当只有数字时会发生同样的问题,1 之后的 10 但我想要 2...

您需要从数据中提取一些“可排序”信息。这取决于数据的格式。如果前缀始终相同(在本例中为 J),则可以将其删除并将其余部分转换为数字。或者,如果前缀可以不同并且它对数据排序很重要,那么您可以用前导零填充数字后缀以使它们都具有相同的宽度(例如 J0001J0002、 ..., J0010, J0011).添加一个 custom column with this sortable information and use Sort by column 来定义排序顺序。

因此在 Power Query 编辑器中添加以下自定义列之一:

Number.FromText(Text.End([Date], Text.Length([Date]) - 1))

获取数字后缀(确保列的类型是 Whole number - 如果需要更改它),或:

Text.Start([Date], 1) & Text.End("00000000" & Text.End([Date], Text.Length([Date]) - 1), 8)

用前导零填充数字(在这种情况下为 8 位数字 - 这取决于数据中数字的范围)。

最后,您将有另一列如下所示:

然后转到您的报告,字段窗格中的 select Date 列并使用 Sort by column 定义如何对数据进行排序并选择您刚刚添加的自定义列:

之后,当您按此列排序时,它将使用您的自定义列来获取定义的排序顺序: