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

Power BI中如何用DAX获取最大、最小累计利润对应的日期?

DAX度量值报错解决:获取最大/最小累计利润对应日期

已创建的度量值

  • 最大利润:
Maximum Profit = MAXX(ALLSELECTED(Dates),[Profit running total in Date])
  • 最小利润:
Minimum Profit = MINX(ALLSELECTED(Dates),[Profit running total in Date])
  • 累计利润:
Profit running total in Date = CALCULATE( [Profit],FILTER(ALLSELECTED('Dates'[Date]),ISONORAFTER('Dates'[Date], MAX('Dates'[Date]), DESC)))

问题与报错

尝试编写度量值获取最大累计利润对应的日期时出现错误:

MaxDate = If([Profit running total in Date] = FILTER(ALLSELECTED('Dates'[Date]),ISONORAFTER('Dates'[Date], MAX('Dates'[Date]), DESC)),MAX('Dates'[Date]))

报错信息:

MdxScript(模型) (437, 65) 度量值'Report'[MaxDate]计算错误:在需要单个值的位置提供了包含多个值的表。

解决方案

报错核心原因是IF条件中错误地将单个值的累计利润度量值与返回表的FILTER函数做比较,FILTER返回的是表而非单个值,导致类型不匹配。以下是正确的写法:

获取最大累计利润对应的日期

MaxDate = 
MAXX(
    FILTER(
        ALLSELECTED('Dates'[Date]),
        [Profit running total in Date] = [Maximum Profit]
    ),
    'Dates'[Date]
)

获取最小累计利润对应的日期

MinDate = 
MAXX(
    FILTER(
        ALLSELECTED('Dates'[Date]),
        [Profit running total in Date] = [Minimum Profit]
    ),
    'Dates'[Date]
)

补充说明

  • 先通过FILTER筛选出所有累计利润等于目标值(最大/最小利润)的日期行
  • 若存在多个日期对应相同的最大/最小利润,上述代码会返回最新的日期;如果需要返回最早的日期,将MAXX替换为MINX即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:52:53