如何用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
相关产品推荐
相关产品推荐

