在Power BI中对列循环依赖项进行排序

时间:2020-07-13 07:20:02

标签: powerbi dax powerbi-desktop

我必须在Power BI Desktop中对从1月到12月的月份名称进行排序。 Power BI根据字母顺序对列进行排序。

这是我的数据集:
Data-set

当我按月份数按列排序时,出现循环依赖错误:

Error message

我的数据集中没有日期表。我已经将月份数作为计算列。

如何摆脱这种循环依赖?这是预期的结果:
Final result

5 个答案:

答案 0 :(得分:1)

转到超级查询编辑器并复制“月份”列,然后使用以下代码创建新步骤:

= let
   Source = #"Previous Step Name",
   Substitutions = [
   #"January" = "1",
   #"February" = "2",
   #"March" = "3",
   #"April" = "4",
   #"May" = "5",
   #"June" = "6",
   #"July" = "7",
   #"August" = "8",
   #"September" = "9",
   #"October" = "10",
   #"November" = "11",
   #"December" = "12"],
   Substituted = Table.TransformColumns(Source, {{"Duplicate Month Column", each Record.FieldOrDefault(Substitutions, _, _)}})
in
   Substituted

请记住将上一步步骤名称重复月份列替换为相应名称。

最后转到“数据”标签,选择您的月份列,然后选择按列排序选项,然后使用新创建的列对其进行排序。

答案 1 :(得分:0)

转到Power bi中的“数据”标签,选择您需要选择的列,然后单击按列排序,然后选择需要用于排序的列(请参见下图,在此案例月份的名称将根据“月份的月份”列进行排序)

enter image description here

答案 2 :(得分:0)

为月份名称和月份编号创建支持表。 该支持表将是静态的,并且具有月份名称和月份编号(最好在excel中创建并将其复制到power bi中,而不是创建一个计算列) 就我而言,它将基于会计年度。

[Image shows the data created in excel

然后对支持表的月份名称和月份编号进行排序。 将支持表的月份名称与主表的月份名称连接起来。 将月份列从支持表而不是主表拖到图形中。 而已。 如果仍未排序,则单击图并根据月份名称对其进行排序。

答案 3 :(得分:0)

最快的解决方案是在每个月的IF或SWITCH语句的同一表中创建一列,然后按MonthNumber对MonthName进行排序。

以下代码:

Month_Num = SWITCH(TRUE,
[Month] = "Jan",
1,
[Month] = "Feb",
2,
[Month] = "Mar",
3,
[Month] = "Apr",
4,
[Month] = "May",
5,
[Month] = "Jun",
6,
[Month] = "Jul",
7,
[Month] = "Aug",
8,
[Month] = "Sep",
9,
[Month] = "Oct",
10,
[Month] = "Nov",
11,
[Month] = "Dec",
12)

答案 4 :(得分:0)

如果按以下方式创建,则排序列将不起作用:

sort order circular dependency power bi 1

按以下方式创建时有效:

sort order circular dependency power bi 2