ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1709|回复: 3

如何用VLOOKUP函数查询Access中的数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-6-26 22:33 | 显示全部楼层 |阅读模式
本帖最后由 Askinofblue 于 2021-6-26 22:36 编辑

我们在Excel中查询数据的时候往往用VLOOKUP查询当前工作簿中的数据。但是我们的数据源往往并不是存储在当前工作簿。可能存储在其它的工作簿,也可能存储在文本文件,或者存储在数据库。

如果数据并不是存储在当前工作簿,比如数据存储在了Access中那么我们该怎样查询数据源呢?

此篇文章我们介绍一个新工具。它不仅可以用来查询Access中的数据还可以用来查询很多种来源的数据。

比如在Access中存储了全国所有大学的基本信息如下:
图片.png

现在我们得到了一批大学名单如下:

图片.png

需要查询这些学校的学生人数。这批学生名单存放在Excel中,该怎样匹配呢?

可能你会说把Access中的数据导出来到Excel里面用VLOOKUP匹配一下不就可以了。然而这只是一个简单的例子,如果数据量超出了excel容量限制该怎么办呢?如果数据是每日动态更新的该怎么办呢?

现在我们借助Excel插件SqlCel来解决这个问题。

安装这个插件后,你将进入一个新的数据世界。在这里数据都是互联的,各种数据库,文本,excel等数据源都可以互联互通,当然也包括excel和access。

我们要在excel中查询access中的数据,首先需要用excel连接上access数据库。只要将数据库的具体路径告诉插件即可,如下:

图片.png

给这个连接取一个名字,接下来我们会用到,此处我们的连接名为Database1。

接下来把access中的数据定义到excel中(工作表函数->定义数据源),如下:

图片.png

在第一个字段下写SQL语句。此处的SQL语句和我们平时写的SQL语句略有不同,它最前面是 "access!Database1->"表示接下来的SQL语句将会提交给一个连接名为"Database1"的access数据库。数据源写好之后再给这个数据源取一个名字比如此处定义为"Colleges"。

通过预览或者查看所有数据可以将数据源查询到当前活动excel中。

点击"定义数据源"Access中的数据就被定义到Excel的内存中了,接下来我们就可以通过特定的工作表函数查询已定义的表里面的数据。

SqlCel提供了一系列统计查询函数。因为此处有的学校名称并不是完整的比如“矿业大学”,因此不可以用D_VLOOKUP函数,而D_FIND函数支持模糊查询,因此我们用D_FIND函数来查询数据。公式如下:

图片.png
此处"Colleges!b:b"引用的是刚才定义的表"Colleges"的第二个字段。"%" & A1 & "%" 表示包含A1单元格的值, 这里面的%是通配符。如果公式写成

=D_FIND("Colleges!b:b","Colleges!a:a", A1)

则表示在"Colleges"的第一个字段精确查找A1单元格的值。此时该公式的效果和D_VLOOKUP相同,如下:

=D_VLOOKUP(A3,"Colleges!A:B",2,0)

我们看到SqlCel的定义数据源和Excel的定义名称颇为相似,都是给数据源取一个名字,然后在公式里面引用这个名字从而找到数据源。

不同的是Excel自己的定义名称定义的数据源是Excel单元格里面的数据,而SqlCel定义的数据源的范围非常广,它涵盖了Excel可以连接上的所有数据源。因为它不仅可以天然支持四种主流数据库、文本、Excel,同时还可以支持用VBA定义数据源。因此触角非常全面。

通过D_VLOOKUP我们可以看到这个函数的用法和VLOOKUP也极为相似,只是D_VLOOKUP的第二个参数用字符串表示查找的数据区域

图片.png
图片.png
图片.png
图片.png
图片.png
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-12 10:36 | 显示全部楼层
很好的思路,excel中检索获取Access数据,太有启发了!

TA的精华主题

TA的得分主题

发表于 2021-8-17 11:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-4-14 13:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 15:18 , Processed in 0.042162 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表