You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBI/DAX中REMOVEFILTERS失效:财年最大周数计算问题

问题分析与解决方案

问题原因

添加FILTER(vwPBIDate,vwPBIDate[Fiscal Year Number]=2021)后出现异常的核心原因是:FILTER函数会先继承当前切片器的筛选上下文,再执行财年筛选。也就是说,切片器选1月时,FILTER只会在1月的日期范围内筛选2021财年的记录,自然只能取到该范围内的最大周数(比如5),而非整个2021财年的最大周数。

正确度量值写法

要实现“忽略切片器筛选,返回指定财年的最大周数”,需要确保先完全清除日期表的筛选,再锁定目标财年。以下两种方式均可实现:

方式1:用ALL清除筛选后直接指定财年

PriorYearNumberOfWeeks = 
CALCULATE(
    MAX(vwPBIDate[Week of Year]),
    ALL(vwPBIDate),
    vwPBIDate[Fiscal Year Number] = 2021
)

方式2:通过CALCULATETABLE先获取目标财年完整日期集

PriorYearNumberOfWeeks = 
VAR TargetFiscalYearDates = CALCULATETABLE(
    vwPBIDate,
    ALL(vwPBIDate),
    vwPBIDate[Fiscal Year Number] = 2021
)
RETURN
MAXX(TargetFiscalYearDates, vwPBIDate[Week of Year])

补充说明

  • ALL(vwPBIDate)会完全清除日期表上的所有筛选(包括切片器选择),确保后续财年筛选基于整个日期表范围。
  • 方式1的写法比嵌套FILTER更高效,因为它直接针对列筛选,而非遍历整个表。
  • 如果需要动态匹配财年(比如取切片器所选年份的上一年),可将硬编码的2021替换为动态表达式,例如SELECTEDVALUE(vwPBIDate[Fiscal Year Number]) - 1。

内容的提问来源于stack exchange,提问作者JStewart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:05:23