本文转自: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的方式当然这个简单的案例可以实现,但是要学会举一反三,学习方然是以简单的例子给你讲解(还纠结的回到文章开头去想前提条件和你能想到能运用的场景)。这里给大家介绍在Excel中中使用简单的SQL语句的方法来实现对不同表格间数据的整合和筛选。

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

单击后,出现命名对话框

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

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

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


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


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


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

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


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

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

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

在Excel中使用SQL语句查询和筛选相关推荐

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

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

  2. Excel 中使用SQL 语句查询数据(七)-----用LIKE 运算符进行模糊匹配查询

    这篇博文要和大家分享的是用LIKE 运算符进行模糊匹配查询下图数据源商品代号包含数字的数据. 我们用Microsoft query连接数据源,步骤请参考本系列第一篇博文.语句如下图 其中 LIKE ' ...

  3. vba搜索java里面的sql_在EXCEL中使用SQL语句查询集锦-持续更新中,敬请关注

    StrA = "" StrA = StrA & " SELECT YEAR(日期) AS 年份" StrA = StrA & ",工地 ...

  4. ORACLE中使用SQL语句查询所有员工的职位信息,并用DISTINCT消除重复信息。

    ORACLE中使用SQL语句查询所有员工的职位信息,并用DISTINCT消除重复信息. 在sqlplus中执行下面语句: select job from emp: 显示结果如下: SQL> se ...

  5. 在excel中执行Sql语句,实现复杂查询

    引子 Excel过滤与查找数据的功能很强,但如果是非常复杂的查询还是用SQL语句来得直接.但这需要有一些数据库的专业知识. 实事上excel支持对Sheet上的数据进行sql查询,这时Sheet名就是 ...

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

    为什么80%的码农都做不了架构师?>>>    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 whe ...

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

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

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

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

  9. Mysql中使用sql语句查询前一个天、前一周、前一月时间的方法

    查询一天: select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW ...

最新文章

  1. 我招了个“水货”程序员
  2. mysql查询数字比字符串快,与字符串相比,MySQL在where子句中使用数字更快吗?
  3. 皮一皮:狭路相逢勇者胜...
  4. struts2下的helloworld(如何让第一个struts2跑起来)——struts2第一讲
  5. 动态规划(最长递增子序列)---最长递增子序列
  6. XBMC 最新版本错误
  7. 树莓派与阿里云服务器之间的无线通信(非局域网)
  8. 洛谷 P1967货车运输 并查集+贪心 不需要用LCA!
  9. java外部类_Java里什么叫内部类什么叫外部类
  10. python-类思想-实现简单增删查改
  11. git多人合作时,恢复误删文件
  12. matlab thetal,基於matlab的車道和車道線檢測樣例
  13. .net dropdownlist 動態顯示,指定字段
  14. hyperledger fabric超级账本java sdk样例e2e代码流程分析
  15. Pycharm使用---Black代码格式化工具
  16. 树莓派设置开机自启动程序
  17. 10 个 Flutter 优秀组件
  18. HEVC 、H.264与AVS2 视频压缩
  19. 网关系统就该这么设计(万能通用),贼稳!
  20. 对于微软学术搜索的评价——陈稳霖

热门文章

  1. 错误代码1500什么意思_http错误代码都是什么意思?
  2. 超简单但又超有效的基于CNN的暗光成像模型
  3. Tplink企业版开启ipv6
  4. 如何安装Linux-Ubuntu
  5. 信息流月赚 50 万项目
  6. 计算机考证一级pets
  7. c语言象棋小程序,中国象棋源代码-C语言小程序.docx
  8. 2022-05-大脑与认知科学-台湾交通大学-黃植懋
  9. java代码情书_程序员们的爱情表白书
  10. CRECT,RECT区别GetWindowRect GetClientRect