PowerBI中Calculate度量值Filter筛选失效,结果为空求助
PowerBI度量值筛选后结果为空的问题排查
我在PowerBI中创建了如下度量值,用于统计维度表某一分类下的行数:
TotalNonSev = Calculate(COUNT(DimCrime[CrimeNumber]), FILTER(DimCrime, DimCrime[CrimeGroup] = "least severe"))
未添加筛选时,总行数显示正常,但添加筛选后结果为空。已确认数据表中存在符合条件的行,且CrimeGroup的小写值与筛选条件完全一致。
可能的原因及解决办法
- 筛选上下文冲突:当添加外部筛选(如切片器、页面筛选)时,外部筛选会先对
DimCrime表进行过滤,你的FILTER是在这个过滤后的子集里查找目标分类行,如果外部筛选排除了这些行,结果就会为空。
解决:若要忽略外部对DimCrime的筛选,用ALL(DimCrime)重置上下文:
若需保留部分筛选条件,使用TotalNonSev = Calculate(COUNT(DimCrime[CrimeNumber]), FILTER(ALL(DimCrime), DimCrime[CrimeGroup] = "least severe"))ALLEXCEPT指定要保留的列:TotalNonSev = Calculate(COUNT(DimCrime[CrimeNumber]), FILTER(ALLEXCEPT(DimCrime, DimCrime[需保留筛选的列名]), DimCrime[CrimeGroup] = "least severe")) - 数据模型关系问题:如果
DimCrime作为维度表与事实表存在关联,外部筛选可能作用于事实表,导致维度表中对应行被过滤。检查表间关系的筛选方向,必要时设置为双向筛选,或调整关系逻辑。 - 隐藏字符干扰:即使确认大小写一致,
CrimeGroup字段值可能包含前后空格、换行等隐藏字符。可通过TRIM函数去除空格后再匹配:TotalNonSev = Calculate(COUNT(DimCrime[CrimeNumber]), FILTER(DimCrime, TRIM(DimCrime[CrimeGroup]) = "least severe"))
内容的提问来源于stack exchange,提问作者tand0l
相关产品推荐
相关产品推荐

