PowerBI如何用DAX或Power Query实现列空白值定向向下填充

你需要的是「空白值按规则向下填充」需求,4万行数据量不大,以下给出两种可行方案:
方案1:Power Query实现(更推荐,执行效率更高,操作简单)
Power Query自带向下填充功能,一步就能完成:
- 进入Power Query编辑器,选中
id列 - 点击顶部菜单栏「转换」→「填充」→「向下填充」即可完成全部空白值的规则填充。
如果还没有可保证行顺序的索引列,可以先在Power Query里添加:点击「添加列」→「索引列」→ 选择从1开始即可。
方案2:DAX计算列实现
注意:该场景需要给每行生成固定的填充值,不适合用度量值实现(度量值是随查询上下文动态变化的聚合值),使用计算列即可实现。
前置要求:表中必须有可唯一确定行顺序的列(如索引列/行号列,记为RowIndex),DAX本身不识别表格物理行顺序,无排序依据无法判断前后行关系。
计算列代码如下:
Filled ID = VAR CurrentRowIdx = '你的表名'[RowIndex] // 找到当前行及之前最后一个非空id对应的行号 VAR LastValidIdx = MAXX( FILTER( ALL('你的表名'), '你的表名'[RowIndex] <= CurrentRowIdx && NOT(ISBLANK('你的表名'[id])) ), '你的表名'[RowIndex] ) // 取对应行号的id值 RETURN LOOKUPVALUE('你的表名'[id], '你的表名'[RowIndex], LastValidIdx)
如果没有现成的RowIndex列,可以先添加DAX计算列生成:
RowIndex = RANKX(ALL('你的表名'), '你的表名'[你原本用来排序的字段名], , ASC, Dense)
内容的提问来源于stack exchange,提问作者usmansharif shaik
相关产品推荐
相关产品推荐

