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

为何无法基于参数表值筛选日期列,如何通过切片器切换日期筛选范围

原代码错误原因
  • CALCULATE函数第一个参数必须是聚合运算,你直接传入了带FILTER的IF判断,没有返回可计算的聚合值,度量值本身无法正常运算
  • 你试图直接通过度量值返回筛选后的表,但Power BI的度量值无法直接修改数据模型的筛选上下文,必须通过标记值的方式作用于可视化筛选器
  • 测试逻辑写死了固定日期15.10.21,没有基于当前日期动态计算近30天区间,不符合需求
实现方案

正确实现逻辑为:新增一个标记类度量值,将该度量值添加到可视化对象的筛选器中,设置筛选条件为等于1即可实现动态筛选。

以下是支持3种筛选规则(包含补充要求的非近30天逻辑)的DAX代码:

日期筛选标记 = 
// 读取切片器选择的规则,未选时默认返回全部数据
VAR SelectRule = SELECTEDVALUE(Parametres[Selection_date], "All")
// 取当前系统日期,若要按数据中最大日期计算可替换为 LASTDATE(v_Date[Date])
VAR CurrentDate = TODAY()
VAR Last30DayStart = CurrentDate - 30
RETURN
SWITCH(
    SelectRule,
    // 规则1:近30天
    "Last30Days", IF(MAX(v_Date[Date]) >= Last30DayStart && MAX(v_Date[Date]) <= CurrentDate, 1, 0),
    // 规则2:可自定义的第二种规则,示例为近90天,可按需修改
    "Last90Days", IF(MAX(v_Date[Date]) >= CurrentDate - 90 && MAX(v_Date[Date]) <= CurrentDate, 1, 0),
    // 规则3:不属于近30天的所有数据(对应补充问题需求)
    "BeforeLast30Days", IF(MAX(v_Date[Date]) < Last30DayStart, 1, 0),
    // 未选择规则时默认返回全部数据
    1
)
配置步骤
  • 先给Parametres参数表的Selection_date字段补充3个选项值:Last30Days、Last90Days、BeforeLast30Days,可按需修改规则命名和对应逻辑
  • 新建上述「日期筛选标记」度量值
  • 打开你需要做动态筛选的柱状图的「视觉对象筛选器」面板,把「日期筛选标记」拖入筛选条件列表,设置为等于1后应用筛选
  • 点击参数切片器的不同选项,即可自动切换对应的日期筛选范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:36:04