【问题标题】:Power BI / DAX: Sort Calculated Table by Calculated ColumnPower BI / DAX:按计算列对计算表进行排序
【发布时间】:2021-10-24 03:13:36
【问题描述】:

我有一个 Power BI 数据模型,其中 DAX 计算表用作维度,该维度使用事实表中的 VALUES 计算,每个值多次出现,因此它是 1:M 关系。

在我的报告中,我想将计算出的表值用作切片器,其中选项按字母顺序以外的特定顺序显示。因此,在计算表中,我创建了一个计算列,它根据 SWITCH 函数为每一行分配一个数字。但是,当我尝试在 Power BI 中“按列排序”时,它会引发错误,表明它是循环引用。我还能如何定义排序顺序?

这是一个示例数据/计算表:

“来源”事实表:

Dimension_Values
a_order_third
a_order_third
b_order_first
b_order_first
c_order_second
c_order_second

Calculated_Dim_Table = VALUES('Source'[Dimension_Values])

Dimension_Values
a_order_third
b_order_first
c_order_second

Calculated_Order_Column = SWITCH('Calculated_Dim_Table'[Dimension_Values],"b_order_first",1,"c_order_second",2,"a_order_third",3)

*按 'Calculated_Dim_Table[Calculated_Order_Column] 对 'Calculated_Dim_Table'[Dimension_Values] 进行排序,以便所需的输出为

Dimension_Values Calculated_Order_Column
b_order_first 1
c_order_second 2
a_order_third 3

问题:Power BI 说这是在创建循环依赖 - 是否有另一种方法来定义列的排序顺序而不引用它以避免循环依赖?

【问题讨论】:

    标签: sql powerbi dax


    【解决方案1】:

    我认为它会引发循环引用错误,导致 DAX 在内部决定执行顺序。在这种情况下,DAX 想要在加载时对维度值进行排序,但它不能导致它依赖于计算列,而这又依赖于维度值。所以它确实是一个循环引用。我建议你在 PQ 中这样做,然后加载两个表,然后你可以在 t2 中毫无问题地进行排序。

    【讨论】:

    • PQ (Power Query) 能否针对 Power BI 数据流工作,因为这是这些数据的来源?为确保我理解,您建议使用 Power Query 不同值而不是 DAX values() 函数创建“Calculated_Dim_Table”,然后一旦该表存在于模型中,运行计算列然后排序?
    • 为了确保我理解,您建议使用 Power Query 不同值而不是 DAX values() 函数 yes 创建“Calculated_Dim_Table”,然后一旦该表存在于模型中,运行计算列然后按no, create the calculate column in PQ too and when you load both tables and attempt sort by you will not see the error 排序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    相关资源
    最近更新 更多