[转]在Excel中使用SQL语句实现精确查询
本文转自: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语句实现精确查询的更多相关文章
- 在Excel中使用SQL语句查询和筛选
本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQ ...
- Excel 中使用sql语句查询
将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和 ...
- 在EXCEL中使用SQL语句查询
SQL语句在数据库使用中十分重要. 在EXCEL中可以不打开工作簿,就获取数据,对多工作簿操作很用,也很快. 对大量数据处理,比循环快很多,但是比词典方法还有点距离(可惜我还没有学会词典). 对数据库 ...
- 在JDBC中实现SQL语句的模糊查询
在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...
- 如何在Access中使用SQL语句
如何在Access中使用SQL语句 创建,查询设计,弹出[显示表]窗口,点击[关闭]将该窗口关掉.这时软件会进入[设计]工具栏,我们点击工具栏左侧的[SQL视图].[SQL视图]默认选择的是[设计视图 ...
- EntityFramework中使用sql语句
https://blog.csdn.net/yangyangafan/article/details/77602133 EntityFramework操作数据库谜一般的方便还不用写数据库,但前提是很简 ...
- Excel下用SQL语句实现AVEDEV函数功能
Excel下AVEDEV函数返回一组数据点到其算术平均值的绝对偏差的平均值. AVEDEV 是对一组数据中变化性的度量.最常见的应用就是统计平均分差. 但是如果在Excel中写SQL进行一些复杂的统计 ...
- 通过Excel生成批量SQL语句
项目中有时会遇到这样的要求:用户给发过来一些数据,要我们直接给存放到数据库里面,有的是Insert,有的是Update等等,少量的数据我们可以采取最原始的办法,也就是在SQL里面用Insert int ...
- 在mybatis中写sql语句的一些体会
本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...
随机推荐
- EXT入门学习
今天,对EXT做了一下初步的了解,了解了一些基本用的函数.窗体对象.表单.文本域.按钮,一些基本的函数我列了出来,写了个登陆的demo,是根据别人的例子模仿出来的,见谅哈. 基本函数 Ext.onRe ...
- JavaScript自定义事件,动态添加属性
根据事件的不同,可用的自定义方法也不同. document.createEvent('Event'); 实现主要有4个步骤: 1.创建事件. 2.初始化事件(三个参数:事件名,是否起泡,是否取消默认触 ...
- Mybatis学习—入门
总结自 Mybatis官方中文文档 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手 ...
- C#进行Socket通信编程之一
关于Socket编程的相关资料(含实例)在网上多如牛毛,而我写这篇文章的初衷仅仅是为了记录自己的一些心得体会. Socket提供了这样一个接口,可以方便地使程序员通过其来发送和接收网络上的数据.在利用 ...
- 机器学习方法:回归(一):线性回归Linear regression
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 开一个机器学习方法科普系列:做基础回顾之用,学而时习之:也拿出来与大家分享.数学水平有限,只求易懂,学习与工 ...
- Django 1.6在Windows平台下的配置
Django 1.6 在Windows平台下的配置 前言 最近两天研究了下Django1.6在Windows平台中的配置安装,服务器采用Apache.期间遇到过许多新手所遇到的各种问题,也算是一种宝贵 ...
- [你必须知道的.NET]第二十七回:interface到底继承于object吗?
发布日期:2009.03.05 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. 说在,开篇之前 在.NET世界里,我们常常听到的一句话莫过于“S ...
- react-router 4.0 升级攻略
react-router 4.0 出来好9了,项目在4月份的时候对react-router进行了升级,升级耗费了3天,一个坑一个坑踩了过来. 按照公司项目情况说下升级改了哪些,项目使用的是hashHi ...
- 封装CSS动画
写在前面:感谢腾讯课堂与妙味课堂的移动端公开课 对于需要设置动画的元素需要提前设置css()样式,这样数据才会被记录起来. function css(ele, attr, val) { if (/ro ...
- hdu多校第三场
Problem D. Euler Function 思路:打表找找规律. #include<bits/stdc++.h> #define LL long long #define fi f ...