Power BI创建重复行信息新列:Excel公式等效实现问题
在Power BI中实现Excel填充上一行有效值的逻辑
你的Excel公式核心是:当前行A列是指定物料类型时返回对应值,否则继承上一行的有效物料类型。Power BI里可以通过两种方式实现,具体如下:
方法一:Power Query(推荐,数据加载时处理)
这是最高效的方式,在数据导入阶段完成处理:
- 打开Power Query编辑器,选中你的数据表
- 添加自定义列(点击【添加列】→【自定义列】),输入公式(替换
[物料列]为你实际的A列列名):if List.Contains({"Finished Goods", "Raw Material", "Consumables"}, [物料列]) then [物料列] else null - 选中新生成的自定义列,点击【转换】→【填充】→【向下填充】,此时空值会自动填充上一行的有效物料类型
- 按需重命名列或替换原列,关闭并应用更改即可
方法二:DAX计算列(模型中动态处理)
如果需要在数据模型中生成计算列,先给表添加索引列(Power Query或DAX生成都可以,保证行顺序和原数据一致),然后创建计算列:
物料类型 = VAR 当前行索引 = '你的表名'[索引] VAR 上一个有效值 = CALCULATE( MAX('你的表名'[物料列]), FILTER( '你的表名', '你的表名'[索引] < 当前行索引 && List.Contains({"Finished Goods", "Raw Material", "Consumables"}, '你的表名'[物料列]) ) ) RETURN IF( List.Contains({"Finished Goods", "Raw Material", "Consumables"}, '你的表名'[物料列]), '你的表名'[物料列], 上一个有效值 )
原理是通过索引筛选当前行之前的所有行,找到最后一个符合条件的物料类型值,实现和Excel公式相同的继承效果。
内容的提问来源于stack exchange,提问作者Alexandre Rosa
相关产品推荐
相关产品推荐

