一般来说,如果有标准的数据源结构,对后续的分析工作将会带来极大的方便。但现实中,许多的原始数据并不预期那样,一个主题的数据已经干净地存放在一个工作表中。今天Excel催化剂再次送上批量化操作,将不规则的难以立即分析使用的报表形式数据源转换为标准的数据库结构数据源。
原文在简书上发表,再同步到Excel催化剂微信公众号或其他平台上,文章后续有修改和更新将在简书上操作, 其他平台不作同步修改更新,因此建议阅读其他出处的文章时,尽可能跳转回简书平台上查看。
大量的数据分散在零散的Excel表格中,需要对其进行合并汇总,才能做分析工作。 其中一大类数据为以报表的形式存储的数据结构,例如一份简历、一份财务报表和一张订单等,还有许多需要发送其他人填写的问卷类、收集类表单数据。
对这些报表类型的数据合并,还不同于简单的工作薄合并那样,每个工作表里存放的都是标准的流水式记录单数据。无法简单地将复制粘贴的工作用代码自动化实现。
类似报表形式的原始数据结构
期待转换后的格式为标准数据表结构
当面对有父子表结构时,如上图的下方有明细数据,明细数据的数量不固定,初版功能以横向展开的形式存放,后期再追加纵向多行数据存放的数据结构。
当遇上一列有多条记录时,结果表以横向展开的方式存放
前面描述到的业务场景,用代码实现,其实大部分会一点VBA的人,应该都可以写出来,达到能用的水准。
能用到优秀卓越还是有一段距离,不妨耐心看看Excel催化剂的实现方式和你预想的方式有何不同之处,和如此处理后带来的效果是否有借鉴之处
首先程序要知道,你的原始数据的结构是怎样的,要提取哪些信息,原始的信息和需要生成的目标表的信息之间的匹配关系如何,这些工作都是最基本的业务逻辑,没法用程序去用逻辑判断产生的。
功能入口位置
点击【配置映射关系】,程序在当前活动工作薄下,新建一个【字段映射表】。 若仅是追加或修改的方式重新对数据源进行转换,此处程序进行判断,若已有【字段映射表】,将不再新建清空原匹配过的信息。
生成一个字段映射表
对【字段映射表】填写好之后的效果如下:
字段映射两种方式
当引用其他工作薄的单元格,容易出现带上其他工作薄的文件名或文件路径,下次打开结果表时,会提示链接工作薄是否更新之类的弹窗 同时引用过程中默认变为绝对引用,有$符号,不能进行下拉填充的方式批量处理其他列。
可以把原始数据表复制一份到当作结果表工作薄,在同一工作薄上引用其他工作表单元格,可避免以上说的缺点
当引用其他工作薄的单元格
引用当前工作薄其他工作表单元格
最后开放只填写原始数据的所在单元格的地址,若选择不方便时,直接输入即可,后期会开发几个自定义函数配合使用,更为方便。
仅仅一个字段列映射,Excel催化剂想了许久,推翻了几种方案,最终以现在的方式呈现,优秀的由来从不是简单的。
推翻过的方案: 用窗体的方式,用户自己填写结果表名称和对应的单元格区域,弊端如下:
使用路径清单而非文件夹,好处如下:
使用GetFiles自定义函数得到路径清单
按提示选择新建新表还是覆盖现有表
转换后的结果表,原数据中一个工作表转换为一条记录(后期再优化父子表结构的转换可转换多条记录,更符合数据分析场景使用),另加上文件名和工作表名两列以示区分数据来源。
转换后的结果表
前面说到,报表格式转标准数据源格式,知道了思路,基本可以自己简单写几句VBA代码得到想要的结果。前提条件是数据量不大的情况下可接受
读取Excel文件,若使用COM的方式来读取,大批量文件处理来说,肯定会有性能瓶颈,所以Excel催化剂一开始就不打算用原生的Excel的VBA对象模型来操作,改换为使用不依赖于Excel的NPOI和EPPLUS两个类库的读取,最终测试结果,NPOI的读取速度领胜!
测试数据情况: 数量量:读取一万个文件,每个文件两个工作表 读取单元格数量:30个单元格的读取 使用时间(含导出到Excel智能表): xls格式文件,NPOI读取为30多秒;xlsx文件,NPOI为3分钟左右,EPPLUS为10多分钟。
当大量的数据未能以标准的数据表结构存放时,必要给后续的分析工作带了许多麻烦。
而现实中又不能保证所有数据生成都有专门的系统来操作。Excel表格分发容易,使用广泛,很适合做数据收集的工作,数据采集模板,一般以类似报表的形式来做排版,方便填写。
一个非规范化的报表类型数据源,转换为结构化的标准数据表,Excel催化剂为大家想出的方案为:操作体验友好、可复用、高性能的处理方式。一个简单的功能,做到极致,希望大家喜欢。
一文带你全面认识Excel催化剂系列功能 安装过程详解及安装失败解决方法 第1波-工作表导航 第2波-数字格式设置 第3波-与PowerbiDesktop互通互联 第4波-一大波自定义函数高级应用,重新定义Excel函数的学习和使用方法 第5波-使用DAX查询从PowerbiDeskTop中获取数据源 第6波-导出PowerbiDesktop模型数据字典 第7波-智能选区功能 第8波-快速可视化数据 第9波-数据透视表自动设置 第10波-快速排列工作表图形对象 第11波-快速批量插入图片 第12波-快速生成、读取、导出条形码二维码 第13波-一键生成自由报表 第14波-一键生成零售购物篮分析 第15波-接入AI人工智能NLP自然语言处理 第16波-N多使用场景的多维表转一维表 第17波-批量文件改名、下载、文件夹创建等 第18波-在Excel上也能玩上词云图 第19波-Excel与Sqlserver零门槛交互-查询篇 第20波-Excel与Sqlserver零门槛交互-数据上传篇 第21波-Excel与Sqlserver零门槛交互-执行SQL 第22波-Excel文件类型、密码批量修改,补齐Power短板 第23波-非同一般地批量拆分工作表 第24波-批量发送邮件并指点不同附件不同变量 第25波-小白适用的文本处理功能 第26波-正确的Excel密码管理之道 第27波-Excel工作表设置快捷操作 第28波-工作薄瘦身,安全地减少非必要冗余 第29波-追加中国特色的中文相关自定义函数 第30波-工作表快捷操作(批量创建、命名、排序、工作表目录) 第31波-数量金额分组凑数功能,财务表哥表姐最爱 第32波-空行空列批量插入和删除
Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
Excel催化剂插件下载链接:https://pan.baidu.com/s/1gC6joqGY_SIg_yONga9PaQ
因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物,进群的好处不用多说了)