本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html

今天在微博上看到@数据分析精选 分享的一篇文章,是关于《在Excel中使用SQL语句实现精确查询》,觉得非常受用,分享给大家。

微博上有人回复评论说直接用vlookup、或者导入数据库进行查询处理就好了,岂不是更高效、更灵活;其实给人的第一直观感觉是这样子的,但是我们多想一步,这篇文章的应用场景、使用前提条件是什么?我想到的有以下几个方面:①数据量不是很大的时候;②数据结构导入数据库不是很合适、或要转换,反而显得麻烦;③使用Vlookup比较多的同学,相信明白匹配不是那么精确的,而且会返回“#N/A错误值”,另外vlookup每次返回的是一列值;④在Excel环境里面,可以很好的和表格、图表进行结合,使用数据刷新功能一劳永逸的完成了常规图表的自作。在我想到的这几个前提环境下,相信使用这种方式会比较高效。另外一点,这篇文章提到的这个功能点和技巧告诉大家一个信息,其实在Excel里面也是可以进行数据查询和数据库查询的(在这个功能区下还有数据库查询哦,自己去研究)。

言归正传,整理自原文以例子的方式来分享下这个功能模块的使用。

温馨提示:据了解Excel2007及以上版本才有这个功能,2003版本的要么路过学习一下、要么去升级下自己的版本。

有如下的2张表,表1里面包含姓名、时间、培训内容字段的数据,表2包括姓名、职务、年薪字段的数据,我们可以看到2张表都有姓名字段。

表1

表2
现在想统计表2中名单上的人在表1中的培训记录。人肉实现或者Vlookup的方式当然这个简单的Case可以实现,但是要学会举一反三,学习方然是以简单的例子给你讲解(还纠结的回到文章开头去想前提条件和你能想到能运用的场景)。这里给大家介绍在Excel中使用简单SQL语句的方法来实现对不同表格间数据的整合和筛选。

首先,也是最重要的一部是为这两个表命名,方法是选中表格后单击右键选择“定义名称”,如下所示

单击后,出现命名对话框


这里将表1和表2分别命名为Table1和Table2。

然后选择上方的“数据”选项卡,选择“自其他来源”下的“来自Microsoft Query ”选项


在弹出的对话框中选择Excel Files*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉,如下图所示

然后点击“确定”,便出现“选择工作簿”的对话框,这里选择包含表1和表2的工作表Sample.xlsx

点击确定后之后弹出添加表的对话框,如下图所示 这里要将Table1和Table2都添加一遍,添加完成后,查询器应当是如下图所示的样子

此时,单击图10中输入SQL语句的按钮,弹出输入SQL语句的对话框,如下图所示 上图中的代码是这样的,偷懒的同学可以直接CTRL+C/CTRL+V: SELECT Table1.姓名, Table1.时间, Table1.培训内容, Table2.姓名 FROM Table1,Table2 WHERE Table1.姓名 = Table2.姓名

其基本含义就是将表1中和表2中姓名相符的记录从表1中筛选出来。SELECT语句是SQL语言中最基础也是最重要的语句之一,加上WHERE语句后的限制条件,可以实现大多数的数据查询和筛选工作,其语法也不困难,稍微学习一下就会了。输入完代码,单击确定,就可以看到筛选出来的数据表了,如下图所示

接下来的工作就是将筛选出来的数据表再返回至Excel工作表当中,选择菜单中的“文件”——“将数据返回Microsoft Excel”,如下图所示


接下来的步骤该干嘛就不罗嗦了。

至此,该教程就讲解完成了。在Excel中使用SQL语句可以实现更灵活、准确、高效的数据筛选和匹配、汇总、计算等,文章提到的例子只是最简单的Case,大家可以去结合自己的工作场景玩出更多花样,相信会有所收获的。

感谢原文作者:Durward,原文:http://www.yingzheng.com/forum.php?mod=viewthread&tid=2084402

[转]在Excel中使用SQL语句实现精确查询的更多相关文章

  1. 在Excel中使用SQL语句查询和筛选

    本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQ ...

  2. Excel 中使用sql语句查询

    将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和 ...

  3. 在EXCEL中使用SQL语句查询

    SQL语句在数据库使用中十分重要. 在EXCEL中可以不打开工作簿,就获取数据,对多工作簿操作很用,也很快. 对大量数据处理,比循环快很多,但是比词典方法还有点距离(可惜我还没有学会词典). 对数据库 ...

  4. 在JDBC中实现SQL语句的模糊查询

    在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...

  5. 如何在Access中使用SQL语句

    如何在Access中使用SQL语句 创建,查询设计,弹出[显示表]窗口,点击[关闭]将该窗口关掉.这时软件会进入[设计]工具栏,我们点击工具栏左侧的[SQL视图].[SQL视图]默认选择的是[设计视图 ...

  6. EntityFramework中使用sql语句

    https://blog.csdn.net/yangyangafan/article/details/77602133 EntityFramework操作数据库谜一般的方便还不用写数据库,但前提是很简 ...

  7. Excel下用SQL语句实现AVEDEV函数功能

    Excel下AVEDEV函数返回一组数据点到其算术平均值的绝对偏差的平均值. AVEDEV 是对一组数据中变化性的度量.最常见的应用就是统计平均分差. 但是如果在Excel中写SQL进行一些复杂的统计 ...

  8. 通过Excel生成批量SQL语句

    项目中有时会遇到这样的要求:用户给发过来一些数据,要我们直接给存放到数据库里面,有的是Insert,有的是Update等等,少量的数据我们可以采取最原始的办法,也就是在SQL里面用Insert int ...

  9. 在mybatis中写sql语句的一些体会

    本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...

随机推荐

  1. linux命令(47):rmdir命令

    1.命令格式: rmdir [选项]... 目录... 2.命令功能: 该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限. 3.命令参数: - p 递归删除目录dirn ...

  2. 百度之星资格赛--IP聚合

    IP聚合 Accepts: 1901 Submissions: 4979 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/6553 ...

  3. 七:zooKeeper开源客户端ZkClient的api测试

    ZkClient是Gitthub上一个开源的ZooKeeper客户端.ZKClient在ZooKeeper原生API接口之上进行了包装,是一个更加易用的ZooKeeper客户端.同时ZKClient在 ...

  4. Maximum Subarray——经典

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  5. PHP7.3发布啦

    作为PHP5的最后一个版本,也是目前使用最广泛的PHP版本,PHP 5.6始于公元2014年(不是1804年,嘿嘿),其第一个测试版PHP 5.6 alpha 1版于2014年1月发布.随机产生了第一 ...

  6. 前端读者 | 嗨,你知道this吗

    本文来自 @position_柚子,地址:https://juejin.im/post/5995c7a76fb9a0247a60c407 在平时的代码中,相信大家经常用到 this,可是你真的明白此 ...

  7. centos 磁盘分区格式化与挂载

    1 查看系统里硬盘信息fdisk -l 2 磁盘分区fdisk /dev/sdc输入m显示帮助a:命令指定启动分区:d:命令删除一个存在的分区:l:命令显示分区ID号的列表:m:查看fdisk命令帮助 ...

  8. springBoot service层 事务控制

    springBoot使用事物比较简单,在Application启动类s上添加@EnableTransactionManagement注解,然后在service层的方法上添加@Transactional ...

  9. centos定时备份数据库超简单示例

    #mkdir -p /home/db_backup#cd /home/db_backup #vim mysql_backup.shDATE=$(date +%Y%m%d_%H%M%S) /alidat ...

  10. 洛谷P3941入阵曲

    题目传送门 这道题也是今年湖南集训队Day8的第一题,昨天洛谷的公开赛上又考了一遍,来发个记录(其实是因为五月天,另外两道题分别是将军令和星空,出这次题目的人肯定同为五迷(✪㉨✪)) 话不多说.先理解 ...