如何在Power BI Measure中获取上一行值计算Exposure列
Power BI:用Measure获取上一行值计算Exposure列
前置要求
你的数据集必须有可排序的唯一标识字段(比如预算到账月份,建议设为日期格式),且报表中的表格已按该字段升序排列。
方案1:累计求和场景(对应「上一行Exposure+当前预算」逻辑)
如果Exposure是逐行累加的累计值,直接用这个DAX Measure:
Exposure = CALCULATE( SUM('你的表名'[预算金额]), FILTER( ALLSELECTED('你的表名'), '你的表名'[预算到账月份] <= MAX('你的表名'[预算到账月份]) ) )
逻辑:筛选当前筛选范围内所有早于等于当前行的月份数据,求和得到累计值,等价于用上一行的Exposure加当前预算。
方案2:依赖上一行Exposure的自定义逻辑
如果Exposure计算有特殊规则(不是简单累计),用递归Measure获取上一行值:
Exposure = VAR CurrentMonth = MAX('你的表名'[预算到账月份]) VAR PreviousMonth = MAXX( FILTER(ALLSELECTED('你的表名'[预算到账月份]), [预算到账月份] < CurrentMonth), [预算到账月份] ) VAR PreviousExposure = CALCULATE([Exposure], '你的表名'[预算到账月份] = PreviousMonth) RETURN IF( ISBLANK(PreviousMonth), SUM('你的表名'[预算金额]), PreviousExposure + SUM('你的表名'[预算金额]) )
注意:确保预算到账月份无重复值,否则会导致计算异常。
验证方法
- 在报表中插入表格,添加
预算到账月份、预算金额和新建的ExposureMeasure。 - 按
预算到账月份升序排序,检查计算结果是否匹配预期逻辑。
内容的提问来源于stack exchange,提问作者D_D
相关产品推荐
相关产品推荐

