如何在Power Query中将当前行与下一行合并至新列?
在Power Query中实现当前行与下一行内容合并的新列
方法1:索引列+自连接(直观易理解)
- 给原表加索引(从0开始):
打开Power Query编辑器,选中你的数据表,点添加列→索引列→从0开始。 - 复制一份表用来存下一行数据:
右键当前查询名选复制,把复制后的查询改名叫下一行数据,然后在这个复制表的索引列上,点转换→标准→加,输入1后确定(让索引值+1,这样原表索引0就能匹配到复制表的索引1,也就是下一行)。 - 合并两张表:
回到原数据表,点合并查询→合并查询作为新列,右表选下一行数据,匹配列都选索引,连接类型选左外部,确定后点新列右侧的展开按钮,只选description列,重命名成下一行描述。 - 生成合并列:
点添加列→自定义列,输入公式(记得把#"展开的新列"换成你实际的步骤名):
最后删掉索引列和if [索引] < Table.RowCount(#"展开的新列") - 1 then [description] & " " & [下一行描述] else null下一行描述列就行。
方法2:直接用自定义公式(更简洁)
不用加索引列,直接通过行位置获取下一行内容:
打开Power Query编辑器,点添加列→自定义列,输入以下公式(替换你的数据表名为实际表名):
let 当前行位置 = Table.PositionOf(你的数据表名, _), 总行数 = Table.RowCount(你的数据表名), 下一行内容 = if 当前行位置 < 总行数 - 1 then 你的数据表名[description]{当前行位置 + 1} else null in if 下一行内容 <> null then [description] & " " & 下一行内容 else null
确定后新列就会显示合并内容,最后一行因为没有下一行会显示null。
效果示例
如果原description列是:
商品A
商品B
商品C
新列结果就是:
商品A 商品B
商品B 商品C
null
内容的提问来源于stack exchange,提问作者Sun
相关产品推荐
相关产品推荐

