最近陆续写了《同一工作簿的多表合并》,《同一文件夹下多工作簿合并》,《标题在固定行的的多表合并》,《标题不固定的多表合并》,有同学问:他们好像有规律,今天就来和大家一起探寻一下关于多表合并的规律。
规律一:所有的合并,都建立在《同一工作簿的多表合并》基础上。
规律二:《同一文件下多工作簿合并》,需要添加自定义列,并添加Excel.Workbook()函数来解析表。
规律三:《标题在固定行的多表合并》,需在上面基础上添加自定义列,并添加Table.Skip()函数来跳过不是目标标题的行数。
规律四:《标题不固定的多表合并》,需在《标题在固定行的多表合并》基础上,修改函数Table.Skip([Date],each [ColumnX]<>”XXXX”),通过设置条件修改第二个参数来跳过非目标标题行。
接下来,我们来梳理一下多种合并的流程。
一、 同一工作簿下多表合并
条件:工作簿下各表格式完全一致,且标题都在第一行
1. 新建查询;
2. 从工作簿,选择工作簿,不选择下面的表;
3. 导入数据;
4. 筛选掉不需合并的表;
5. 解析Date列(关键步骤);
6. 提升标题;
7. 筛选不需合并的行;
8. 删除不需要的列;
9. 设置数据类型;
10. 关闭并上载。
二、 同一文件下多工作簿合并
条件:工作簿下各表格式完全一致,且标题都在第一行
1. 新建查询;
2. 从文件夹,选择文件夹;
3. 导入数据;
4. 筛选掉不需合并的内容,只保留需合并的工作簿;
5. 删除其他列,只保留[Content]列;
6. 添加自定义列,填写函数:Excel.Workbook([Content],true) 对[Content]列的二进制内容解析(关键步骤);
7. 解析[自定义]列;
8. 提升标题,如果函数第二个参数,是true,本步骤省略;
9. 后面的步骤同第一情况 7-10步。
三、 标题在固定行的多表合并
1. 如果是同一工作簿,步骤同第一种情况1-4步;如果是同一文件夹,步骤同第二种情况1-6步,并删除第6步函数第二个参数true;
2. 添加[自定义]列,填写Table.Skip([Date],X)函数,跳过非目标标题的行数(关键步骤);
3. 解析[自定义]列;
4. 后面步骤同第一种情况6-10步。
四、 标题不固定的多表合并
1. 如果是同一工作簿,步骤同第一种情况1-4步;如果是同一文件夹,步骤同第二种情况1-6步,并删除第6步函数第二个参数true;
2. 添加[自定义]列,填写Table.Skip([Date], each [ColumnX]<>”XXXX”)函数,跳过不等于目标标题的行(关键步骤);
3. 解析[自定义]列;
4. 后面步骤同第一种情况6-10步。
关于多表合并的流程基本就是这样,多练习,只需记住关键步骤,其他的步骤不分先后,按需进行,不必刻意去记。
刻意练习,加认真总结,形成肌肉式记忆,想忘也忘不了!
不问为什么,只为解决问题。
这一波技能,你Get到了吗?