PowerBI双表过滤聚合:按Chiefdom计算未访问学校占比
问题分析与解决方案
原度量值的问题
你的度量值不符合预期主要有3个原因:
- 未处理Table1中无对应Chiefdom记录的场景:此时
COUNT(Table1[chiefdom])返回BLANK(),导致最终结果为空,而非正确的100%未访问占比。 - 若两表通过School列建立关联,
COUNT(Table2[chiefdom])会被Table1的筛选过滤,仅统计已访问的学校,无法得到该Chiefdom下的全部学校数量。 - 用
COUNT(chiefdom)计数逻辑不准确:应该直接统计唯一标识School的数量,避免因字段重复导致的计数偏差(当前数据无问题,但逻辑上更严谨)。
正确度量值
根据两表是否建立关联,提供两种方案:
方案1:两表未建立关联
未访问学校占比 = VAR 总学校数 = COUNT(Table2[School]) VAR 已访问数 = COALESCE(CALCULATE(COUNT(Table1[School]), Table1[Chiefdom] = SELECTEDVALUE(Table2[Chiefdom])), 0) RETURN DIVIDE(总学校数 - 已访问数, 总学校数, 0)
方案2:两表已通过School列建立关联
需要清除关联带来的筛选,确保Table2统计的是当前Chiefdom下的全部学校:
未访问学校占比 = VAR 总学校数 = COUNT(Table2[School]) VAR 已访问数 = COALESCE(CALCULATE(COUNT(Table1[School]), CROSSFILTER(Table1[School], Table2[School], NONE)), 0) RETURN DIVIDE(总学校数 - 已访问数, 总学校数, 0)
结果验证
以你的数据为例:
- Ch-1:总学校数3,已访问2,未访问占比≈33.33%
- Ch-4:总学校数2,已访问0,未访问占比100%
- Ch-3:总学校数2,已访问1,未访问占比50%
所有结果均符合预期。
内容的提问来源于stack exchange,提问作者Steel8
相关产品推荐
相关产品推荐

