PowerPivot DAX如何在计算列中取两列每行的最大值?
解决Power BI计算列中提取每行两列最大值的问题
嗨,这个需求我做报表的时候常碰到!你提到的Max、Maxx、Maxa其实都能用上,只是用法得调整——直接传整列的话确实会返回整个列的最大值,而非每行的。下面给你两种实用的写法:
方法1:用MAXX迭代当前行的列值(推荐,扩展性强)
这种方法最灵活,以后要加第三、第四列取最大值,直接在列表里追加就行:
= MAXX( { [Column1], [Column2] }, [Value] )
原理很简单:用{}创建一个包含当前行Column1和Column2值的临时单列表,MAXX会迭代这个列表,取出里面的最大值。因为是在计算列的行上下文里,所以每行都会单独计算自己的最大值。
方法2:用IF函数直接比较(适合仅两列的场景)
如果确定只有两列需要比较,用IF判断也很直观,容易理解:
= IF( [Column1] > [Column2], [Column1], [Column2] )
就是直接判断当前行的两个列值,哪个大就取哪个,逻辑非常直白。
另外补充下:你一开始写的=max( Table1[Column1], Table1[Column2] )之所以不行,是因为这里的Table1[Column1]和Table1[Column2]是整个列的引用,MAX会返回这两个列所有值里的全局最大值,而非每行对应的最大值。换成上面的写法,就能锁定到当前行的上下文啦。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

