PowerBI自定义表计算字段不随日历表筛选变化问题排查
度量值清除了筛选上下文
检查你写的计数度量值,是不是误用了ALL()、ALLSELECTED()这类会清除筛选的函数。比如如果度量值写成CALCULATE(COUNT(Sales[ID]), ALL(Sales)),就会无视Calendar表的筛选条件,不管选哪个月份都会返回总计。
正常保留筛选上下文的写法应该是直接COUNT(Sales[ID]),或者如果需要保留部分筛选,可以用KEEPFILTERS()来确保Calendar的筛选能传递到计算中。表关系的筛选方向错误
查看Sales和Calendar之间的关系箭头,默认应该是单向的(从Calendar指向Sales)。如果改成了双向或者反向筛选,Calendar的日期筛选就无法正确作用到Sales表的数据上。
确认关系的筛选方向设置为“单一”,保证Calendar的筛选能传递给Sales表。度量值用了未关联的日期字段
确保你的计数逻辑是基于Sales表中与Calendar关联的Use_SaleDate字段,而不是Sales表里其他没和Calendar建立关系的日期列。如果度量值里用了非关联的日期字段,Calendar的筛选自然无法影响计算结果。日期表或关联字段存在问题
检查两点:一是Calendar表的Date字段是否覆盖了Sales表Use_SaleDate的所有日期范围,比如2023年的日期是否都在Calendar表里;二是两个字段的数据类型必须完全一致(都是日期类型,不能是文本格式),否则关联会失效,筛选也起不了作用。矩阵维度字段来自非关联表
如果矩阵的行或列使用了其他未与Calendar/Sales建立关系的表中的字段,筛选上下文可能无法传递到计数度量值。确保矩阵的行/列字段所在的表,要么直接和Calendar关联,要么通过Sales表形成完整的关系链。
内容的提问来源于stack exchange,提问作者DrewSmith

