第53波-无比期待的合并工作薄功能

2018-09-29

立即购买
  • 课程介绍
  • 用户评价

合并工作薄、工作表功能,几乎每一款Excel插件都提供,而且系列衍生功能甚至有多达10多个。
今天Excel催化剂重拾武器,在现有众多插件没提供到位的部分场景中,给予支持和补充,做到人有我优,人无我有的境地,重新定义怎样才算是一个精品级功能。

背景介绍

Excel催化剂一直留空没开发工作薄功能,并非因其太复杂或无需求。正是因为需求很大,而现有的插件都有提供。

最重要的是连微软官方都提供了此功能,使用PowerQuery的ETL功能,无论从易用性还是功能强大性来说,秒杀市面一切的第3方开发的功能。

不是所有的合并功能都是有必要的功能,这一点笔者三翻四次地不断在作强调,从Excel催化剂的功能开发过程中,可看到是非常有节制性地开发一些真正是刚需的功能。不止于小白用户适用,连高级用户也可以高频地使用。

所以在此次的工作薄合并推出,结合前期的报表格式转标准数据源格式,将形成了一个大的完整的场景使用,其他的场景,在微软官方PowerQuery上已经得到了非常大的支持和补充。同时PowerQuery真是难得的好用的数据ETL工具,对于少量数据来说。

对于数据量大的解决方案如何,当然是找Excel催化剂这样的专业的使用更高级工具,更自动化,性能更高的解决方案,欢迎大家多多引荐,笔者在企业级数据仓库搭建、数据清理整合是一大的强项,开发Excel插件功能只是副业。

合并工作薄功能

再次重申,各种奇形怪状的合并功能中,仅有对工作薄的工作表进行合并,并且形成一份完整汇集所有单份数据的工作表内容供下一步的汇总分析的需求才有实际的价值,其他的功能,如果觉得也有实际场景使用,那就需要好好检讨下在日常制表过程中,是否在正确的制表方法论思想下进行。

选定需要合并的工作薄,获取待合并工作表

老规则,使用选择单元格区域的方式灵活配置需要处理的文件。


筛选出真正需要合并的工作表表

老规则,在Excel智能表上做排序筛选操作,易如反掌,随时过滤掉不需要的工作表。
如下图的其他工作表是不需要合并的,工作薄3两个工作表都要合并。



获取工作表标题信息

从此为止,还没有什么特别之处,接下来,见真功夫的时候到了。

因工作薄的工作表数据源,有可能为不规则的数据源结构。
会出现如下几种类型的不规则:

1.首行不是标题行,如工作薄1

image.png

image.png

2.首列开始也不是数据内容,如工作薄2


3.首列开始也不是数据内容,如工作薄2

每个待合并的工作表,列名称不同,或者列的顺序不同



4.工作表的数据区域非标准化,列标题数量较内容区的数量少。

有不干净的数据在工作表数据区域以外,如下图



以上所示的是常见到的一些数据不规则情况,实际中也常发生,对PowerQuery来说,部分场景还可适用,但列名不同需要不同列名重新检验时,大部分插件和PowerQuery都很难支持,以下可看Excel催化剂效果展示。

获取工作表标题后,有如下的信息

  1. 出现第1行与第2、3行的标题不一

  2. 第2、第3行工作表模拟的是列字段顺序不同,已经被自动处理成相同顺序

  3. 第4行因有脏数据原因,识别出来的标题行为数据区域,故出现了数字作为列标题的抓取结果

  4. 第5行完成找不到标题,标题行号标示为999999,因抓取标题的过程中只遍历前面的记录行数据,此脏数据相对第4行数据在更加靠后的位置出现,故返回未找到标题。


经过罗列出的工作表标题信息后,可以对数据的结构做初步分析,排除异常的工作表数据或对异常数据进行修复后再重新操作。大大地增强了程序的通用性和健壮性。

通过整理后,对字段名重新映射,及最终需要抽取的数据列进行整理
整理内容为:

  1. 删除不需要抽取的无用列(前面3列是有用信息,后面字段开始的列才是可以删除的)

  2. 调整了列的位置,将原有的列5、列8调整回恰当位置

  3. 对列名不一致的进行重新映射,如列51、列81,重新映射回列5、列8

  4. 将智能表的的列标题进行修改,成为最终生成数据时的列标题。

image.png

image.png

批量合并指定工作表

当进行了以上的匹配映射关系后,非常顺利地来到最后一步数据的抽取合并。
映射表里不抽取列4,结果表中体现出来,映射表将列51、列81合并到列5、列8中,结果表也体现出来了。


总结

一直有一个很大的用户需求,想一个插件实现所有的功能,不用因某个功能而安装一个插件,就如日常用QQ一般地依赖腾讯一家提供所有的网络服务。但作为个人开发者来说,很难做到,就算功能不难实现,也需要花费大量的开发时间和成本。

对有现成的解决方案的功能来说,一般Excel催化剂不热衷重复开发,此合并工作薄的功能,算是在插件领域少有的可达到通用性和易用性都一流的效果,甚至在某些场景上远胜于微软官方的PowerQuery。若觉得此功能不错,记得多多帮忙传播下,这世代,垃圾横流,真正精品却少有人发现而被埋没。


最新问答

专题推荐