本文转自: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语句查询

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

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

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

  3. [转]在Excel中使用SQL语句实现精确查询

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

  4. 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载

    浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...

  5. EF Core中执行Sql语句查询操作之FromSql,ExecuteSqlCommand,SqlQuery

    一.目前EF Core的版本为V2.1 相比较EF Core v1.0 目前已经增加了不少功能. EF Core除了常用的增删改模型操作,Sql语句在不少项目中是不能避免的. 在EF Core中上下文 ...

  6. MySQL中优化sql语句查询常用的30种方法

      1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使 ...

  7. MySQL中优化sql语句查询常用的种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  8. 浅谈MySQL中优化sql语句查询常用的30种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  9. Mysql 性能优化7【重要】sql语句的优化 浅谈MySQL中优化sql语句查询常用的30种方法(转)

    原文链接   http://www.jb51.net/article/39221.htm 这篇文章大家都在转载,估计写的有条理吧,本人稍微做一下补充 1.对查询进行优化,应尽量避免全表扫描,首先应考虑 ...

随机推荐

  1. linux命令之tail

    tail用于输出文件末尾部分.一个比较有用的功能是tail + grep实现类似于安卓开发时调试使用的logcat,具体操作是: 一般我是用SecureCRT连接linux,然后使用SecureCRT ...

  2. [django]Django站点admin支持中文显示和输入设置

    正文: Django站点admin支持中文输入设置,操作如下: 1 需要确定的你的数据库的client客户端和服务端的编码设置为utf-8,如果不是,请将其设置成utf-8编码,我采用mysql,详情 ...

  3. Java基础知识笔记(三:文件与数据流)

    一.输入流与输出流 输入流将数据从文件.标准输入或其他外部输入设备中加载到内存.输出流的作用则刚好相反,即将在内存中的数据保存到文件中,或传输给输出设备.输入流在Java语言中对应于抽象类java.i ...

  4. 【2016-10-28】【坚持学习】【Day15】【Oracle】【变量 定义 使用】

    declare i integer ; j ; begin i :; dbms_output.put_line(j); end

  5. segments&cache

    Segments 执行效果 命令  在 sense 里边执行  GET /abcd/_segments  前边的是索引名称,后边是请求 段信息 说明  索引是面向分片的,是由于索引是由一个或多个分片( ...

  6. Hibernate 错题分析

  7. u3d_Shader_effects笔记6 第二章 animating sprite

    1.前面的心情 上班看shader我也是醉了.写完这篇看代码去了,不过看着看着恐怕就会困.... 还有就是上天,我该怎么做,下一步,大懒: 2.参考源头 http://blog.csdn.net/ca ...

  8. jdbc java数据库连接 1)jdbc入门

      之前操作数据 1)通过mysql的客户端工具,登录数据库服务器  (mysql -u root -p 密码) 2)编写sql语句 3)发送sql语句到数据库服务器执行 什么是jdbc? 使用jav ...

  9. poj[2104]K-th Number

    Description You are working for Macrohard company in data structures department. After failing your ...

  10. 玩KVM

    按照网上的一篇博客玩KVM,结果wifi上不了网,上不了网! 把br0下线就好了! 呀------ 11月16日,今天发现kvm卡成屎可能是和kvm内存使用率为0相关,虚拟机中的内存显示内存确实是我配 ...