Power BI Power Query合并多文件:处理重复列与压缩冗余行
问题解答
1. 期望结果的存储与内存效率
是的,这种结构在存储和工作内存上会更高效:
- 存储层面:虽然Power Query对null值有压缩优化,但合并后减少了冗余行数量,行式存储下更少的行数意味着更低的磁盘占用;同时专属列的结构避免了同一ID重复存储,进一步降低冗余。
- 内存层面:加载数据时,更少的行数直接减少了内存占用;后续查询(筛选、计算、可视化)时,无需遍历冗余的null行,计算性能会明显提升,尤其是数据量较大时效果更显著。
2. Power Query转换操作步骤
假设你已经有带来源文件标识列(比如命名为"文件标识",值为A/B这类区分不同文件的标记)的数据集,按以下步骤操作:
步骤1:逆透视非关键列
- 选中
ID列和文件标识列,右键选择「逆透视其他列」 - 操作后会生成四列:
ID、文件标识、属性(原列名)、值(原列对应的值)
步骤2:生成专属列名
- 添加自定义列,公式示例:
[属性] & [文件标识]- 比如原列
StdDev+文件标识A,会生成StdDevA;如果文件标识是完整文件名,可先用Text.AfterDelimiter([文件名], "_")提取后缀再合并
- 比如原列
- 将生成的自定义列命名为
新列名,删除原属性列
步骤3:透视列合并行
- 选中
ID列和新列名列,右键选择「透视列」 - 在弹出的窗口中,「值列」选择
值,「聚合函数」选择「不要聚合」(因为同一ID+新列名只会对应一个有效值)
步骤4:收尾检查
- 透视完成后,相同ID的行已合并为单行,重复列已转为
StdDevA、StdDevB这类专属列,冗余null值被消除 - 可按需调整列的顺序或重命名列
内容的提问来源于stack exchange,提问作者hethatwalksunseen
相关产品推荐
相关产品推荐

