Power BI中基于其他列规则生成新列D的实现方法求助
Power BI 创建计算列D的实现方案
步骤说明
- 确保目标表有唯一排序索引列(如自增ID、日期列),若无则进入Power Query添加「索引列」(从1开始)后加载回Power BI。
- 在数据视图选中目标表,点击「建模」→「新建列」,输入以下DAX表达式:
D = VAR SortedData = SORT('你的表名', [索引列], ASC) VAR CalculatedValues = ADDCOLUMNS( SortedData, "@CalcVal", IF(NOT(ISBLANK([C])), [C], [B] - [A]) ) VAR RunningTotal = SCAN( BLANK(), CalculatedValues, VAR PrevResult = [Value] VAR CurrentCalc = [@CalcVal] RETURN IF(NOT(ISBLANK([C])), CurrentCalc, PrevResult + CurrentCalc) ) RETURN MAXX(FILTER(RunningTotal, [索引列] = EARLIER([索引列])), [Value])
代码逻辑解释
SortedData:按索引列对表升序排序,保证行顺序符合计算要求@CalcVal:临时计算列,C列非空时取C值,否则取B-ASCAN:迭代遍历每一行,维护上一行的计算结果:- 若当前行C列非空,直接用
@CalcVal作为当前行D值 - 若C列空/Null,用上一行D值加上当前行的
@CalcVal
- 若当前行C列非空,直接用
MAXX:匹配当前行索引,返回对应的计算结果
注意事项
- 替换表达式中的
你的表名和索引列为实际表名和排序列名称 - 索引列必须唯一且顺序正确,否则计算结果会出错
内容的提问来源于stack exchange,提问作者Mehdi Tadayoni
相关产品推荐
相关产品推荐

