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

求DAX度量值:按用户/活动/国家分组的阈值达标最早日期

解决DAX累计达标最早日期问题

原度量值核心问题

你当前的代码仅判断单条记录的Acceptedrecords是否≥minimumthreshold,并未计算累计值,因此只能返回行级的达标日期,无法满足“累计达标后取最早日期”的需求。

修正后的DAX度量值

Earliest Cumulative达标日期 = 
VAR GroupContext = ALLEXCEPT('Table', 'Table'[userid], 'Table'[campaignid], 'Table'[Country])
VAR Threshold = SELECTEDVALUE('Table'[minimumthreshold])
VAR DateRange = VALUES('Table'[date])
-- 计算每个日期的累计Acceptedrecords
VAR CumulativeByDate = 
    ADDCOLUMNS(
        DateRange,
        "累计Accepted",
        CALCULATE(
            SUM('Table'[Acceptedrecords]),
            FILTER(GroupContext, 'Table'[date] <= EARLIER('Table'[date]))
        )
    )
-- 筛选累计达标且当日dailyincreincentive不为空的日期
VAR QualifiedDates = 
    FILTER(
        CumulativeByDate,
        [累计Accepted] >= Threshold 
        && NOT(ISBLANK(CALCULATE(MAX('Table'[dailyincreincentive]), GroupContext, 'Table'[date] = EARLIER('Table'[date]))))
    )
-- 返回最早达标日期,无则为空
RETURN
    IF(NOT(ISEMPTY(QualifiedDates)), MINX(QualifiedDates, 'Table'[date]), BLANK())

代码说明

  1. GroupContext:锁定当前分组(userid、campaignid、Country)的上下文,确保累计计算仅在分组内进行。
  2. Threshold:提取当前分组的minimumthreshold值(需保证每个分组内该值唯一)。
  3. CumulativeByDate:遍历分组内所有日期,计算截至每个日期的Acceptedrecords累计总和。
  4. QualifiedDates:筛选出累计值达标且当日dailyincreincentive不为空的日期集合。
  5. 返回结果:从达标日期集合中取最小值,若无达标日期则返回空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 14:53:23