如何在Power Query中为重复数据组间插入空白行?
在Power Query中为重复ID组之间插入空白行的方法
完全可以用Power Query自动实现,步骤清晰,适合新手操作:
操作步骤(可视化界面+M代码结合)
假设你的数据表已经按ID排好序:
按ID分组
选中ID列,点击「转换」选项卡 → 「分组依据」。设置:- 分组依据:
ID - 新列名:
数据组 - 操作:
所有行
点击确定后,每行将对应一个ID的所有数据行。
- 分组依据:
给每组添加空白行
点击「添加列」→ 「自定义列」,输入以下公式:Table.Combine({[数据组], #table(Table.ColumnNames([数据组]), {List.Repeat({null}, Table.ColumnCount([数据组]))})}这个公式会把当前ID的所有数据行,和一行与原表列数一致的空白行合并成新表。
展开合并后的表
点击新生成的「自定义」列右侧的展开箭头,选择「展开所有列」,取消勾选「使用原始列名作为前缀」后确定。清理多余空白行(可选)
此时最后一组ID后会多一行空白,若不需要,点击「转换」→ 「删除行」→ 「删除最后几行」,输入1即可。
完整M代码示例
如果直接复制修改,假设你的原表叫表1,列包含ID、列1、列2等:
let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 按ID分组 = Table.Group(源, {"ID"}, {{"数据组", each _, type table [ID=nullable text, 列1=nullable text, 列2=nullable number]}}), 添加空白行 = Table.AddColumn(按ID分组, "带空白行的组", each Table.Combine({[数据组], #table(Table.ColumnNames([数据组]), {List.Repeat({null}, Table.ColumnCount([数据组]))})})), 展开数据 = Table.ExpandTableColumn(添加空白行, "带空白行的组", Table.ColumnNames(源)), 删除末尾空白行 = Table.RemoveLastN(展开数据, 1) in 删除末尾空白行
注意:代码里的列名和类型要和你的实际表匹配,比如type table里的列需改成自己的列名和对应类型。
内容的提问来源于stack exchange,提问作者joey
相关产品推荐
相关产品推荐

