关于批量合并还有哪些问题?其中有几位后台跟我说,如果数据不是从第一行开始的,怎样批量合并指定列呢?

这种情况确实很常见,因为大多数Excel表都会有个表头信息,具体的明细数据从下面的某行才开始,比如下面示例中的三个表就是这样:

e6f7b3b2fbd2b4d62682ff49d5b71728.png

这三张表的数据都是从第5行才开始的,并且数据字段的顺序也不一致,这种情况下怎样批量合并指定的列呢?

难道需要把每个表打开,删除表头后再合并吗?这当然也是一个笨办法,不过这不符合我们利用PowerQuery批量合并提升效率的初衷,下面就给出一个这种类型表格的批量合并思路。

总体步骤和上篇文章类似,不过中间多了一个处理步骤,以及利用了两个M函数。

下面进入分步详细操作:

83274d3fa393378ccf64ca6d894b7e58.png

↑ 获取数据>文件夹3fb611008a318fe3c6e6b8879b2b5a6e.png↑ 点击“转换数据”进入PowerQuery编辑器9e68e63225e85d34b925dc9581f2a01f.png↑ 添加列>自定义列3a12a2415f97a44c3dcb677887995c16.png↑ 自定义列公式:Excel.Workbook([Content])这里的Excel.Workbook无需加第二个参数,因为第一行本来也不是标题行,将表的第一行作为标题没有意义。Tips:利用PowerQuery进行数据处理时,可以先把其他无关列都删掉,看起来更加清爽,包括之后的步骤,如果展开后,发现有无用的列,可以随时删除。52949e18342a9343285c92db47f72b97.png↑ 展开自定义列展开以后,并不是像上篇文章一样,接着展开[Data]列,而是再添加一个自定义列:

Table.PromoteHeaders( 

   Table.Skip([Data],4) 

 )

470ffb43c5f6500c0d9d650ff2ab6769.png↑ 添加自定义列这串M函数的含义已经用注释说明,其实逻辑很简单,由于原始数据表格是从第5行开始的,所以先跳过前4行数据,并将第五行数据,作为表的标题行,然后展开这个新的自定义列,就可以正常提取并合并特定的列了。fd5deaea36932b4f78e719db1b9ea7db.png3c07ab937f87f57a534f2f4d0c6c31cb.png比起上一篇文章,只是多了一个添加自定义列的步骤,利用两个M函数:Table.PromoteHeaders和Table.Skip,就可以轻松解决批量合并时跳过表格前几行的问题,并且也可以选择合并特定的某几列数据。关于PowerQuery批量汇总Excel,如果你还有其他问题,欢迎留言分享,我们一起解决。?往期精彩推荐
  • 即将开课 | SQL Server 开发课程
  • Word快捷键合集来啦!记住它们,效率Word天,那是蹭蹭提升~
  • 抱歉,中国市场也帮不了苹果 HomePod
  • 数据治理创造企业价值   掌握它你也是价值本身(文末福利)
  • 即将开课|使用PowerShell实现自动化管理课程

a08cde8ffab4d8126a99a29cd85eac1e.gif

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐