Power BI中如何使用DAX获取同一分组下上一行的对应字段值
DAX 实现同分组取上月qty的计算列方案
直接使用CALCULATE搭配筛选逻辑即可实现,无需额外创建索引列,具体计算列代码如下:
prev_qty = VAR current_family = '你的表名'[family] VAR current_month = '你的表名'[month] -- 取同分组下小于当前月份的最大月份 VAR last_valid_month = CALCULATE( MAX('你的表名'[month]), ALLEXCEPT('你的表名', '你的表名'[family]), '你的表名'[month] < current_month ) RETURN -- 分组首行没有上月数据时返回当前行qty,否则返回上月qty IF( ISBLANK(last_valid_month), '你的表名'[qty], CALCULATE( SUM('你的表名'[qty]), ALLEXCEPT('你的表名', '你的表名'[family]), '你的表名'[month] = last_valid_month ) )
注意事项
- 替换代码中所有
你的表名为Power BI模型中对应的实际表名即可使用 - 若月份字段为数值格式(如202307、7等),逻辑完全通用无需调整
- 若同family同月份存在多条数据,可将SUM函数替换为MAX、AVERAGE等符合业务需求的聚合函数
验证结果
代入你提供的样例数据,运行后输出的prev_qty结果与你给出的预期值完全匹配。
内容的提问来源于stack exchange,提问作者kumarb
相关产品推荐
相关产品推荐

