首页 > 解决方案 > 对 PowerBI 和 DAX 中缺少数据的度量进行大平均

问题描述

我试图让我的头脑围绕 DAX 并且正在苦苦挣扎。我有一个 PowerBI 矩阵,我需要在其中计算一个度量的平均值。衡量标准是“人口百分比”,从表面上看,它似乎完全按预期工作。

它在两个级别的顶部矩阵中正确计算,并在底部表格中正确汇总。

例如,我用红色突出显示“A3”的计算顺序

具有完整数据的 PowerBI

作为记录,人口百分比设置为

% of Population = sum(Data[Value])/sum('Level'[Population])

当我过滤国家并仅选择国家 2 时会出现问题...

缺少数据的 PowerBY

国家 2 没有“D13”的数据。尽管值总和正确 (170),但人口总和包括缺失的 D13 行中的 300,总共 600 和 28.33% 的“人口百分比”(而不是 170 / 300 = 57%)

我很高兴关闭顶部网格中的组总计,这样 28.33 就不会显示;所以我真正的问题实际上是底部网格。

我想我需要一个新的度量来显示在底部网格中。我认为它只需要总结价值并除以人口的总和 - 但只有当价值存在时。我怎么做?

还是我完全走错了路,并且我缺少一个明显的答案?

PowerBI 文件可以从这里下载

提前致谢。

标签: powerbidax

解决方案


发生这种情况的原因是Country表没有过滤Level关系图中的表,因为它们都只过滤到Data表的一种方式,并且没有其他关系。

在不更改数据模型的情况下,在 DAX 中解决此问题的一种方法是指定您只想计算当前过滤器上下文PopulationLevel[LevelId]与 a 匹配的位置。Data[SecondLevelId]

Population =
DIVIDE (
    SUM ( Data[Value] ),
    CALCULATE (
        SUM ( 'Level'[Population] ),
        'Level'[LevelId] IN VALUES ( Data[SecondLevelId] )
    )
)

推荐阅读