Power BI中基于切片器筛选数据集平均值实现表格条件格式
Power BI条件格式:基于筛选后数据集平均值设置背景色
场景与需求
导入以下CSV数据集到Power BI Desktop后,需对表格的Value列设置动态条件格式:
ID,MainCategory,SubCategory,Type,Value 1,E,E1,Demo,5 2,N,N3,Install,2 3,E,E1,Demo,4 4,E,E2,Install,7 5,D,D1,Install,3 6,S,S2,PM,4 7,N,N2,Install,7 8,N,N2,Demo,1 9,E,E2,Demo,2 10,D,D2,Install,6 11,D,D3,PM,4 12,S,S1,PM,8 13,N,N1,Install,5 14,S,S3,Install,8 15,S,S1,Demo,9 16,E,E3,Demo,5 17,N,N2,Install,3 18,E,E2,PM,6 19,D,D2,PM,6 20,N,N3,Demo,6 21,S,S2,Demo,7 22,E,E3,Install,2 23,S,S1,Install,4 24,S,S2,PM,8 25,D,D1,Install,5
要求:每行Value大于当前筛选后整个数据集的平均值时,背景设为浅粉色;否则设为浅蓝色。筛选条件(如切片器选择MainCategory = D)变化时,平均值需同步更新,条件格式随之调整。
现有问题
原创建的两个度量值未达预期:
AvgOfVal = DIVIDE( SUM(G2G[Value]), COUNTA(G2G[ID]) ) BGColor = IF(SUM(G2G[Value]) > [AvgOfVal], "Light Pink", "Light Blue")
原因是AvgOfVal会受行上下文影响,计算的是当前行所在分组的平均值,而非筛选后整个数据集的平均值。
解决方案
修改度量值,使用ALLSELECTED函数保留筛选上下文的整体数据集,确保平均值计算基于当前筛选后的全部数据:
1. 计算筛选后数据集的整体平均值
AvgOfVal = CALCULATE(AVERAGE(G2G[Value]), ALLSELECTED(G2G))
ALLSELECTED(G2G)会忽略行上下文,仅保留切片器、筛选器的全局筛选结果,从而计算出整个筛选数据集的平均值。
2. 动态判断背景色
BGColor = IF(SELECTEDVALUE(G2G[Value]) > [AvgOfVal], "Light Pink", "Light Blue")
SELECTEDVALUE(G2G[Value])获取当前行的Value值,与全局平均值比较后返回对应颜色。
应用步骤
- 选中表格可视化中的
Value列,打开「条件格式」设置 - 选择「背景色」,设置方式为「字段值」,选择
BGColor度量值 - 测试切片器/筛选器,验证背景色是否随筛选后的平均值动态变化
内容的提问来源于stack exchange,提问作者Sach
相关产品推荐
相关产品推荐

