在 powerBI 中创建一个不受过滤器影响的 countif 度量

create a countif measure not impacted by filter in visual in powerBI

需要帮助创建反映筛选时 table 中实际行数的度量。

示例:

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 AAZ ZY4 +01.5.00 至 +01.75 1 2 5
1010 ABY XYZ +01.5.00 至 +01.75 1 6 5

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

问题:

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

感谢您的帮助。

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

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

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