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

如何用DAX或Power Query实现每行多列最大值计算?

在DAX中简洁计算每行多列的最晚日期

最优简洁方案

DAX的MAX函数在计算列的行上下文环境中,支持直接传入多个当前行的列值作为参数,一步就能得到每行的最晚日期:

Last Time = MAX( example[Worker 1], example[Worker 2], example[Worker 3] )

这个写法和Excel里的MAX(A1,B1,C1)逻辑完全一致,直接对当前行的三个日期列取最大值。

其他可行的简洁写法

如果需要用MAXX实现(比如列数较多时更灵活),需要构造包含当前行三个值的单列表,再遍历取最大值:

Last Time = MAXX( 
    { example[Worker 1], example[Worker 2], example[Worker 3] }, 
    [Value] 
)

或者通过ROW构造临时表后取最大值:

Last Time = MAXX( 
    ROW( 
        "W1", example[Worker 1], 
        "W2", example[Worker 2], 
        "W3", example[Worker 3] 
    ), 
    [Value] 
)

你之前的MAXX写法错误原因

你尝试的代码:

MaxValue = MAXX('Table', {MAX('Table'[Column1]), MAX('Table'[Column2]), MAX('Table'[Column3])})

问题出在:

  • MAX('Table'[Column1])是对整个表的Column1列取全局最大值,而不是当前行的值
  • 整个表达式最终返回的是三列全局最大值中的最大值,而不是每行的行内最大值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:32:35