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

带条件的LASTDATE函数应用:计算达成百分比后的天数

解决DAX计算达成指定百分比天数的问题

嘿,我来帮你搞定这个DAX的问题~首先得指出你原来公式里的核心问题:LASTDATE函数的参数必须是日期类型的列,但你传入的是百分比列[Pct. Test],这就是报错的根源啦。另外你用CALCULATE包裹的写法逻辑也有点偏差,咱们一步步来修正。

针对不同需求的解决方案

假设你的Testtable里有一个日期列(比如叫Date,用来记录每个百分比对应的日期),分几种常见需求给你对应的公式:

1. 获取首次达到74.5%以上的日期

如果要找第一次达成目标的日期,先筛选出符合条件的行,再用MINX取最小日期即可:

FirstReachDate = 
VAR FilteredRows = 
    FILTER(
        'Testtable',
        'Testtable'[Pct. Test] > 74.5
    )
RETURN
    MINX(FilteredRows, 'Testtable'[Date])

2. 获取最后一次达到74.5%以上的日期

如果你确实需要最后一次达成的日期(对应你原来用LASTDATE的想法),把上面的MINX换成MAXX取最大日期就行:

LastReachDate = 
VAR FilteredRows = 
    FILTER(
        'Testtable',
        'Testtable'[Pct. Test] > 74.5
    )
RETURN
    MAXX(FilteredRows, 'Testtable'[Date])

3. 计算从起始日到达成日的天数

如果要进一步计算天数(比如从表中最早的日期到首次达成日的间隔),可以用DATEDIFF函数实现:

DaysToFirstReach = 
VAR FirstDate = 
    MINX(
        FILTER('Testtable', 'Testtable'[Pct. Test] > 74.5),
        'Testtable'[Date]
    )
VAR StartDate = MIN('Testtable'[Date]) -- 这里用表中最早日期作为起始,你也可以换成固定日期比如DATE(2024,1,1)
RETURN
    DATEDIFF(StartDate, FirstDate, DAY)

额外注意事项

  • 确保你的日期列是日期/时间类型,如果是文本格式,需要先用DATEVALUE函数转换成日期类型。
  • 如果你的数据是按分组(比如不同项目)统计的,可以在FILTER里加上分组条件,比如'Testtable'[ProjectID] = SELECTEDVALUE('Projects'[ProjectID]),这样就能按分组计算每个项目的达成天数啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 07:33:13