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

DAX语法问题:计算下拉所选年份之前所有年份的request_id计数

解决多筛选场景下累计年份request_id计数的DAX写法

原写法的核心问题是:FILTER(current_ar, ...)会继承外部所有筛选器,导致只能统计当前筛选范围内年份小于选中值的行,而非所有年份中符合条件的行;同时如果下拉菜单存在多选(或SELECTEDVALUE取不到有效值)时,计算会直接失效。

单选下拉场景的正确写法

累计请求数 = 
VAR SelectedYear = SELECTEDVALUE(current_ar[Fiscal_Year])
RETURN
CALCULATE(
    COUNT(current_ar[request_id]),
    ALL(current_ar[Fiscal_Year]), -- 清除年份列的筛选,确保能访问所有年份数据
    current_ar[Fiscal_Year] < SelectedYear,
    -- 保留除年份外的其他所有筛选条件(比如部门、区域等)
    ALLSELECTED(current_ar) REMOVEFILTERS(current_ar[Fiscal_Year])
)

多选下拉场景的正确写法

如果下拉菜单允许选择多个年份,需要取选中年份的最大值来计算累计:

累计请求数 = 
VAR MaxSelectedYear = MAX(current_ar[Fiscal_Year])
RETURN
CALCULATE(
    COUNT(current_ar[request_id]),
    ALL(current_ar[Fiscal_Year]),
    current_ar[Fiscal_Year] < MaxSelectedYear,
    ALLSELECTED(current_ar) REMOVEFILTERS(current_ar[Fiscal_Year])
)

优化建议(推荐)

如果你的数据模型中有独立的日期/年份维度表,建议基于维度表编写DAX,逻辑更清晰且避免事实表筛选的干扰:

累计请求数 = 
VAR SelectedYear = SELECTEDVALUE('日期维度表'[Fiscal_Year])
RETURN
CALCULATE(
    COUNT(current_ar[request_id]),
    ALL('日期维度表'[Fiscal_Year]),
    '日期维度表'[Fiscal_Year] < SelectedYear,
    ALLSELECTED('日期维度表') REMOVEFILTERS('日期维度表'[Fiscal_Year])
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:53:23