【问题标题】:DAX to average values from another table using associationsDAX 使用关联从另一个表中取平均值
【发布时间】:2021-02-03 15:07:31
【问题描述】:

假设我在 Power BI 中有这三个表(我的企业应用程序的简化版):

Table_A

Coordinate Value
A1 12
A1 15
A1 17
A2 13
A2 19

Table_B

Coordinate Value
B1 90
B1 91
B1 88
B1 87
B2 80
B2 88
B3 91
B4 99
B4 99
B4 98
B4 92

协会

Coordinate_A Coordinate_B
A1 B1
A1 B2
A1 B3
A2 B3
A2 B4

我想使用 DAX 获取与每个 A 坐标关联的所有 B 值的平均值。所以 A1 有 B1、B2 和 B3 与之相关联(来自关联表)。所以对于 A1,我想要 Table_B 中坐标 B1、B2、B3 的所有值的平均值。对于 A2,我想要 Table_B 中所有 B3 和 B4 值的平均值。

因此,Power BI 中的预期结果如下所示:

Coordinate A Average of A Average of B
A1 14.667 87.857
A2 16 95.8

有人可以帮助使用 DAX 公式给出 [B 的平均值] - 显然是按 [坐标 A] 分组的吗? 注意:我在 Power BI 中对 SSAS 表格模型使用 Direct Query,但无法识别 TREATAS(和其他一些函数)。

【问题讨论】:

    标签: powerbi dax ssas-tabular


    【解决方案1】:

    假设模型看起来像这样,有 2 个不活动的多对多关系:

    您可以使用此度量来获得 B 的平均值

    Average of B = 
    CALCULATE (
        AVERAGE ( tbl2[Value] ),
        USERELATIONSHIP ( Assc[Coordinate_A], tbl1[Coordinate] ),
        USERELATIONSHIP ( Assc[Coordinate_B], tbl2[Coordinate] )
    )
    

    结果:

    【讨论】:

    • 模型在 SSAS 中,所以这不起作用。 SSAS 不处理多对多关系,并且您无法在 SSAS 中创建的关系之上建立非活动关系。除非我错过了什么……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    相关资源
    最近更新 更多