分享

一键完成Excel多文件数据抽取,感受Excel的强大!

 hercules028 2023-02-18 发布于湖北
首先,我们还是先来看看VBA的部分,不用担心看不懂,都知道我一般出保姆级教程,基本稍微改改都能通用!

数据源:还是昨天的4个,我们要提取合计对应的金额
图片


一键搞定-VBA

使用VBA处理的思路比较简单,只要把文件夹中的每个Excel文件打开,然后在A列找到我们需要的关键词“合计”,找到后,使用offset方法偏移到结果的I列即可得到结果!

图片

完整代码如下:
图片

VBA的部分我们就聊这么多,下面我们来聊聊如何使用SQL处理,使用SQL,我们也不需要打开Excel文件,也算是一种不错的手段

SQL也分两种,一种直接利用数据获取部分的直接写SQL语句,第二种使用ADO对象处理,核心就是写SQL语句,这里我们使用比较简单的【现有连接】的方式处理

▍SQL处理方案

依次点击【数据】-【现有连接】-【浏览更多】,选择任意一个Excel文件,确定
图片

第三步,对应的浏览操作,选择任意一个待提取的Excel文件,点击确定
图片

找一个空白位置,确定即可!

图片

出来的结果是一个表,我们依次点击【表设计】-【刷新】-【连接属性】-【定义】,在【命令文件】中写SQL

图片

具体要怎么写SQL呢?如果只有一个表,我们可以这样来写
select 金额 from [Sheet1$] where 销售日期='合计'
图片

但是我们要查询多个Excel文件,所以表名的位置需要处理一下,还需要把结果合并起来!

核心就是如何表示其他Excel中的表呢?
[Excel文件夹全路径.xlsx].[表名称$]
比如上面的,完整的表示方法!
[C:\Users\xst\Desktop\20220216-PQ按条件抽取数据\Data\仁果类.xlsx].[Sheet1$]

多个查询结果如何合并,可以使用 UNION ALL 语句
在记事本中复制粘贴几份,处理好即可!
图片

粘贴进去,确定即可!
图片

如果你的文件太多,可以考虑使用VBA批量生成上面的SQL语句!关于ADO对象处理,核心还是SQL语句,大家了解一下ADO链接Excel参数,懂VBA的同学自然就OK了!

说一下注意点:ADO中多文件路径写法
[Excel 12.0;hdr=YES;Database=文件全路径]
注意不是data source,不要和链接字符串搞混了!

图片

公众号没有提供上传附件的功能,文本含有源码附件已上传知识星球,请各位会员朋友及时下载,练习!
图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多