如何⽤VLOOKUP函数查询Access中的数据
如何⽤VLOOKUP函数查询Access中的数据
我们在Excel中查询数据的时候往往⽤VLOOKUP查询当前⼯作簿中的数据。但是我们的数据源往往并不是存储在当前⼯作簿。可能存储在其它的⼯作簿,也可能存储在⽂本⽂件,或者存储在数据库。
如果数据并不是存储在当前⼯作簿,⽐如数据存储在了Access中那么我们该怎样查询数据源呢?
此篇⽂章我们介绍⼀个新⼯具。它不仅可以⽤来查询Access中的数据还可以⽤来查询很多种来源的数据。
⽐如在Access中存储了全国所有⼤学的基本信息如下:
现在我们得到了⼀批⼤学名单如下:
需要查询这些学校的学⽣⼈数。这批学⽣名单存放在Excel中,该怎样匹配呢?
可能你会说把Access中的数据导出来到Excel⾥⾯⽤VLOOKUP匹配⼀下不就可以了。然⽽这只是⼀个简单的例⼦,如果数据量超出了excel容量限制该怎么办呢?如果数据是每⽇动态更新的该怎么办呢?
现在我们借助⼀个Excel插件SqlCel来解决这个问题。
安装这个插件后,你将进⼊⼀个新的数据世界。在这⾥数据都是互联的,各种数据库,⽂本,excel等数据源都可以互联互通,当然也包括excel和access。
我们要在excel中查询access中的数据,⾸先需要⽤excel连接上access数据库。只要将数据库的具体路径告诉插件即可,如下:
vlookup模糊匹配给这个连接取⼀个名字,接下来我们会⽤到,此处我们的连接名为Database1。
接下来把access中的数据定义到excel中(⼯作表函数->定义数据源),如下:
在第⼀个字段下写SQL语句。此处的SQL语句和我们平时写的SQL语句略有不同,它最前⾯是 "access!Database1->“表⽰接下来的SQL语句将会提交给⼀个连接名为"Database1"的access数据库。数据源写好之后再给这个数据源取⼀个名字⽐如此处定义为"Colleges”。
通过预览或者查看所有数据可以将数据源查询到当前活动excel中。
点击"定义数据源"Access中的数据就被定义到Excel的内存中了,接下来我们就可以通过特定的⼯作表函数查询已定义的表⾥⾯的数据。
SqlCel提供了⼀系列统计查询函数。因为此处有的学校名称并不是完整的⽐如“矿业⼤学”,因此不可以
⽤D_VLOOKUP函数,⽽D_FIND 函数⽀持模糊查询,因此我们⽤D_FIND函数来查询数据。公式如下:
此处"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的第⼆个参数⽤字符串表⽰查的数据区域。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论