数据处理无小事,正如没有人活在真空理想环境一下,在数据分析过程中,也没有那么真空理想化的数据源可以使用,数据处理占据数据分析的80%的时间,每一个小小的改善,获益都良多。
Excel查找替换,有其局限性所在,此篇再次对查找替换这样的高频的操作进行补充,问鼎100篇之后,仍然回归初心,在数据处理的路上不断添砖加瓦,打造最优秀的精品工具。
使用场景
在Excel过往的大量功能辅助中,其实很少使用替换这样的操作,因为对数据源进行了无法回溯还原的破坏作用。
更多的时候,是推荐使用自定义函数,根据原有的数据源,经函数转换后生成新的符合要求的数据结果,所以在Excel催化剂中,有大量的自定义函数来支持数据处理、转换的环节。
但对某特定的场景下,原有数据可以接受永久性更新操作,替换旧的有数据,这时使用替换操作,也是合适恰当的,例如需要将标题行的原标题改为更符合阅读习惯的更有意义的标识。
![在地图数据功能中大量出现的原英文标题](https://i-blog.csdnimg.cn/blog_migrate/8ddaa315124f7b8599c4b84e27db7749.webp?x-image-process=image/format,png)
在这种情形下,如果手头固定维护一个映射表,可以一次性将其替换,就比较完美。
![列标题的映射表关系](https://i-blog.csdnimg.cn/blog_migrate/6a4ca1e5186fa71d029426f65520aa14.webp?x-image-process=image/format,png)
同样地,若某表格数据中,有一些过时的名称叫法,需要将其重新批量命名为新的名字,因Excel的数据源不像在关系数据库里那般整齐规范,数据有可能不止在一列内容上,还分散在多列的内容上,此时,自定义函数的处理仍不是最理想,可以考虑用替换的方式去覆盖旧的过时数据,在再次分发传播中,新的定义叫法更符合日常的数据使用和二次引用。
Excel原生查找替换功能的缺陷
鉴于上述的场景,使用Excel的原生功能,虽然大部分还是可以解决,但仍然偏繁琐,不能一次到位的以人逻辑提炼的方式实现。有多少个要替换的内容,就要反复操作多少篇,如果是偶发性的行为,还勉强可以接收一下(但手工操作仍然有出错的风险,多次操作,头晕眼花的情形是时有发生的)。
对于特定的情景,特别是字符串世界中,各种杂乱的数据,但仍然有所规律可循时,如果单纯地只有Excel的原生的区分大小写,精确模糊匹配等方式,远远不能胜任实际的数据场景。
正则表达式的引入
在字符串处理的世界中,正则表达式的处理方式永远不能让其缺席,有了正则处理,字符串的世界才趋于听话。
正则表达式,笔者是非常推荐的,固然有一点点的学习成本,但学成之后,使用场景十分广阔,特别是日常工作中需要和数据打交道的人员,十分值得花心思入门学习一下。
在Excel催化剂的自定义函数、文本处理等功能上,已经有大量正则表达式的封装,让一般的用户可以无需编程环境下,即可在Excel上轻松使用正则表达式。
此篇的批量替换功能,也不落空,必然要将正则表达式进行引入,扩展Excel的原生功能的不足。
替换方式的追加
Excel原生的替换方式,只能对匹配的内容进行替换,如单元格内的内容为:“ABC123456”,当需要查找含ABC关键字的单元格时,是没法对其单元格的内容全部替换为某个值如“CDE”,只会替换成“CDE123456”的效果。
但实际中,可能更想要的是只要找到含ABC的,就直接替换成映射表中的CDE的值。在这方面,本篇会进行扩展,实现这样的需求。
对处理大量数据时的性能瓶颈问题
若存在一个数据量大的表,尝试使用Excel原生的查找替换的话,会非常慢,特别是使用正则的扩展方式,如果还是在用COM的方式来访问Excel文件并处理的话,慢得非常难于忍受,此时可尝试Excel催化剂使用EPPLUS读写Excel的方式,性能有大幅度的提升。
当然如果数据量不大,仅替换下标题几个单元格甚至几百几千的单元格,性能不会成为大问题。
功能实现
经过上述的描述,一个简单的查找替换,也是需要考虑许多的问题和场景需要的,Excel催化剂很多时候的确是把功能做复杂了,对于初级用户来说。
但日常的工作,不会因为你是初级用户,问题就会自动跳过,问题的存在复杂性,必要会让功能的使用上配合到其通用性的设计而同步地变得复杂起来。
所以,需要使用上Excel催化剂的所有功能,仍然需要自己有努力的上进心,勇于解决一些日常难题并乐于静下心来认真地琢磨才能学到手。
相对于将功能封装成一个通用性出口,只需简单的界面操作的开发过程来说,学习功能的使用,已经是十分简单的了。
愿意花上一些时间来弄透它,总比每次每日每夜地去做那些996环境下的低效、重复性、出错率高的工作有价值得多。
![功能入口](https://i-blog.csdnimg.cn/blog_migrate/68a24312fa57f2bb404743c4bd42bec2.webp?x-image-process=image/format,png)
注意:此功能会对原文件带来数据的破坏作用,请务必进行文件备份再进行操作。
操作步骤
步骤一:选定要处理的数据源区域
如果是对整个工作薄操作,这一步的数据源区域引用,在后续的使用上将忽略,而转为使用整个工作薄所有单元格。如需处理整个工作表内容,可全选整个工作表,后续程序会进行范围缩减,不会因为全选所有单元格而引起性能过慢。
替换的单元格中,只会进行非公式的单元格内容替换,如果是公式生成的内容,将不会进行处理(因其会出现一些不可预料的错误和实际场景并非必须而直接跳过了)
步骤二:选择要替换的映射表数据区域
映射表只有两列,首列是查找值或正则表达式的匹配字符,第二列是要替换到为的内容。需要有标题行。如下图所示。
![映射表结构](https://i-blog.csdnimg.cn/blog_migrate/d5e9c9c3ac53448f0c87563ad808294c.webp?x-image-process=image/format,png)
步骤三:配置需要的匹配规则
若所选择的区域不对,可重新选择。
可根据自己数据处理的逻辑,各复选框进行勾先或去勾选。
【替换整个单元格内容】即为以上所述的,当找到有匹配的单元格,即将其单元格的内容用对应行的返回值全部替换,而不是只替换匹配到的部分字符,其他字符保留。
![匹配规则](https://i-blog.csdnimg.cn/blog_migrate/5c177374cb92bc8326c3470f0a2ed055.webp?x-image-process=image/format,png)
![批量替换后的结果](https://i-blog.csdnimg.cn/blog_migrate/2b63cb92e65f044537896206b4490534.webp?x-image-process=image/format,png)
因可供匹配的信息太多,未能对所有情形进行测试,请务必进行保存备份后再操作,也欢迎反馈实际使用过程中出现的bug,让程序及时得以修复,更健壮。
结语
能够跟随Excel催化剂走过这100波功能的朋友,必定是真正愿意成长进步的群体。
时不是有人反馈说学Excel催化剂就像重新学一个软件一样,那还真是,但学习它必定是超值回报的,因它已经是站在Excel巨人的基础上去开发出来的系列功能,并不是一般性软件只是满足特定的细小领域,学习Excel催化剂,也如同Excel一样,所有的功能,都可以复用到非常广阔的应用场景中。
最后,对那些未能轻松跟上Excel催化剂学习步伐的同学们,Excel催化剂将在接下来的日子里,着重性地对过往的101波功能进行场景化的视频教学,将各个看似分散孤立的功能进行串讲,使用实际日常工作中的真实场景,让广大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波-空行空列批量插入和删除
第33波-报表形式数据结构转标准数据源
第34波-提取中国身份证信息、农历日期转换相关功能
第35波-Excel版最全单位换算,从此不用到处百度找答案
第36波-新增序列函数用于生成规律性的循环重复或间隔序列
第37波-把Sqlserver的强大分析函数拿到Excel中用
第38波-比Vlookup更好用的查找引用函数
第39波-DotNet版的正则处理函数
第40波-工资、年终奖个人所得税计算函数
第41波-文件文件夹相关函数
第42波-任意字符指定长度随机函数
第43波-文本处理类函数增强
第44波-可见区域复制粘贴不覆盖隐藏内容
第45波-逻辑判断函数增强
第46波-区域集合函数,超乎所求所想
第47波-VBA开发者喜爱的加密函数类
第48波-拆分工作薄内工作表,堪称Excel界的单反
第49波-标准数据结构表转报表样式结果
第50波-批量打印、导出PDF、双面打印功能
第51波-聚光灯功能,长宽工作表不看错位使用
第52波-相同内容批量合并单元格,取消合并单元格并填充内容
第53波-无比期待的合并工作薄功能
第54波-批量图片导出,调整大小等
第55波-Excel批注相关的批量删除作者、提取所有批注信息等
第56波-获取Excel对象属性相关自定义函数
第57波-一键生成完全组合的笛卡尔积结果表
第58波-批量生成单选复选框
第59波-快速调用Windows内部常用工具命令
第60波-数据有效性验证增强版,补足Excel天生不足
第61波-快速锁定解锁单元格及显示隐藏公式
第62波-单元格区域内数据加解密处理,最有效地保护数据方式
第63波-当前选择区域的上下左右平移功能及跳转窗口左上角
第64波-多级数据如省市区联动输入,自由配置永不失效
第65波-数据区域转换指定规格的多行或多列
第66波-数据快速录入,预定义引用数据逐字提示
第67波-父子结构表转换添加辅助信息之子父关系篇
第68波-父子结构表转换之父子关系BOM表拆分篇
第69波-打造最专业易用的商务图表库
第70波-工作薄外部链接维护管理
第71波-定义名称管理器维护增强
第72波-序列规则下的数据验证有效性好帮手:快速录入窗体辅助录入
第73波-数据转换:单行多项目转多行单项目
第74波-批量排版格式利器,瞬间美化表格
第75波-标签式报表转标准数据源
第76波-图表序列信息维护
第77波-专业图表制作辅助之批量维护序列点颜色及数据标签
第78波-功能大爆炸下如何找到所需的功能
第79波-自动及手动备份功能,比Onedrive还好用
第80波-按条件查找数字,扩展原生查找功能
第81波-指定单元格区域内容及公式填充
第82波-复制粘贴按源区域大小自动扩展收缩目标区域
第83波-遍历文件夹内文件信息特别是图像、音视频等特有信息
第84波-批量提取OUTLOOK邮件附件
第85波-灵活便捷的批量发送短信功能-使用腾讯云接口
第86波-人工智能之图像OCR文本识别全覆盖
第87波-将批量发送邮件做到极致化,需借力Outlook
第88波-批量提取pdf文件信息(图片、表格、文本等)
第89波-批量多图片转PDF
第90波-xml与json数据结构转换表格结构
第91波-地图数据挖宝之行政区域信息实时下载(含经纬度)
第92波-地理地址与经纬度互转功能
第93波-地图数据挖宝之两点距离的路径规划
第94波-地图数据挖宝之搜索地图上的各种兴趣点数据
第95波-地图数据挖宝之IP地址转地理地址及不同经纬度版本转换
第96波-地图数据挖宝之全国天气查询
第97波-快递单号批量查询物流信息
第98波-零代码零距离轻松接触并拥有金融大数据
第99波-手机号码归属地批量查询
第100波-透视多行数据为多列数据结构
关于Excel催化剂
Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q
因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物,进群的好处不用多说了)
![Excel催化剂插件交流群群二维码](https://i-blog.csdnimg.cn/blog_migrate/68f8a68159cb17a229160dabb9fd047e.webp?x-image-process=image/format,png)
![联系作者](https://i-blog.csdnimg.cn/blog_migrate/1b605f7f7fcb6a706165695cc2ff919d.webp?x-image-process=image/format,png)
![公众号](https://i-blog.csdnimg.cn/blog_migrate/cb0a68e6decbb3db7cb70da1bb91be00.webp?x-image-process=image/format,png)
取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。
最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!
关于Excel催化剂作者
姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)
技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。
擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。
2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。
和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。