Power Query动态转置Excel模板:适配新增属性列并保留属性名
Power Query动态转置属性列解决方案
直接用Power Query的逆透视其他列功能就能完美解决你的问题,这个操作天生支持动态适配新增的属性列,不用硬编码固定数量的列。具体步骤和代码如下:
操作步骤
- 把你的Excel表格导入Power Query(选中表格,点击「数据」选项卡→「从表格/区域」)
- 在Power Query编辑器里执行以下操作:
- 选中所有固定列(City、Borough、Street、House)
- 右键点击选中的列,选择「逆透视其他列」
- 自动生成的「属性」列就是你的属性名(Attribute1、Attribute2等),「值」列对应属性值,固定列会全部保留在右侧
对应的M代码
如果需要手动编写或修改脚本,用这段代码更灵活——哪怕未来属性列改名或新增,只要固定列不变,代码不用改:
let // 替换成你的数据源,这里以当前工作簿的Table1为例 Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], // 定义需要保留的固定列 FixedColumns = {"City", "Borough", "Street", "House"}, // 逆透视所有非固定列,自动生成属性名和值列 UnpivotedResult = Table.UnpivotOtherColumns(Source, FixedColumns, "属性名", "Value") in UnpivotedResult
关键说明
Table.UnpivotOtherColumns是核心:它只需要你指定要保留的固定列,剩下的所有列都会被自动转置,不管你新增多少个Attribute列,都能自动识别并处理,完全不用绑定固定数量的列。- 你之前尝试的合并拆分方法会丢失列名,而逆透视操作会直接把原属性列的列名作为「属性名」列的值,正好符合你的需求。
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

