首页 > 解决方案 > 在powerBI中创建一个不受过滤器影响的countif度量

问题描述

在创建反映过滤时表中实际行数的度量时需要帮助。

例子:

ID 等级C 等级A 平均差异 RankC_count RankA_count 平均 Diff_count
1000 AAA XYZ +01.00 至 +01.25 5 6 4
1001 AAA ZY1 +01.5.00 至 +01.75 5 1 5
1002 AAB XYZ +01.5.00 至 +01.75 3 6 5
1003 AAB ZY2 +01.5.00 至 +01.75 3 1 5
1004 AAB XYZ +01.00 至 +01.25 3 6 4
1005 AAA XYZ +01.00 至 +01.25 5 6 4
1006 AAA ZY3 +01.00 至 +01.25 5 1 4
1007 AAC XYZ +01.25.00 至 +01.5 1 6 2
1008 AAA ZY4 +01.25.00 至 +01.5 5 2 2
1009 亚兹 ZY4 +01.5.00 至 +01.75 1 2 5
1010 阿比 XYZ +01.5.00 至 +01.75 1 6 5

最后 3 列表示每个条目的计数。如果我使用如下的度量,它会提供正确的计数。但是,当我在视觉中使用按 ID 过滤时,比如 ID 1000,我希望它显示第 1 行,计数为 5,6 和 4,而不是全部为 1。

问题:

  1. 有什么措施可以给我正确的结果吗?说先总结表格然后查找?
  2. 创建列是唯一的选择吗?我无法创建列,因为我需要 1000 个这些计算列。而使用度量,我可以一次创建 1000 个。

谢谢你的帮助。

AverageDiff_Count =
CALCULATE (
    COUNTROWS (
        FILTER ( '28Jun_1973', [Average Diff] = '28Jun_1973'[Average Diff] )
    )
)

标签: powerbidax

解决方案


ALL函数在这里很有用。它删除过滤器上下文,以便它使用整个表,而不仅仅是当前过滤器上下文中的部分。

AvgDiff_Count =
VAR CurrAvgDiff = SELECTEDVALUE ( '28Jun_1973'[Avg Diff] )
RETURN
    COUNTROWS (
        FILTER ( ALL ( '28Jun_1973' ), '28Jun_1973'[Avg Diff] = CurrAvgDiff )
    )

推荐阅读