query

查询

excel

数据

上篇文章,我们介绍了INDEX+SMALL+IF+ROW的数组公式组合,也就是说只要在IF中通过条件的构造,基本上就可以想提取什么条件的数据都可以,数据查询肯定得心应手。
但是,我们一起强调函数公式不是万能的,尤其是数组公式在海量数据面前,既是软肋也是硬伤,而且构造这个函数组合还需要你要具备或者能理解简单数组公式逻辑,对于在函数公式方面没有深究的人,自然是一头雾水。当然,就像“数据透视表”一样,Excel在数据查询方面,也一样有独特的神器,而且掌握起来其实更简单。
我们今天就介绍一下MS Query查询,在Excel“数据”菜单下的功能名称为“来自Microsoft Query”,相信基本上你就没正眼看过这功能吧?虽然这个功能使用的是SQL的语言范畴,但由于用了“MS Query查询窗口”的可视化界面,所以操作是非常直观的,跟SQL基本上就没有交集……下面的操作演示就是利用这项功能制作的查询,请先参考:
Query查询?"/>
------------------------
进入正题,MS Query查询功能就类似“自动筛选”,可以设置的查询条件多种多样,可以查询的数据文件类型也是多元化的,但今天我们主要针对Excel文件——也就是本工作簿里的工作表,主要演示“等于”及“包含”的条件设置,至于其他查询条件,万变不离其宗……
首先我们看看示例数据源,也就是本工作簿内的'Data'工作表,数据如下表,我们后面将在'Query'工作表内,一方面指定'SELLER'人员查看数据,一方面根据'PDT CODE'包含的种类查询数据:
Query查询?"/>
首先我们设置好要查询数据的条件,如下图所示(当然这个不一定是先行步骤):
Query查询?"/>
----------------------------------
第一种情况:某字段值等于指定单元格内容的数据查询
具体操作步骤:
1. “数据” → “自其他来源” → “来自MicroSoft Query”;
2. 弹出的“选择数据源”对话框中,选择(双击)“Excel File*”;
3. 确定后会弹出“选择工作簿”对话框,请根据具体文件位置、类型选择驱动器及目录,找到本工作簿的位置及名称,并按“确定”;
4. 这时会弹出“查询向导 - 选择列”对话框,你只需要从左边的“可用的表和列”中选择你需要查询并返回结果的数据列,添加到右边“查询结果中的列”窗口即可;
这里可能会有一个小插曲,就是会弹出一个对话框,提示你指定的数据源中没有可用的数据表,你可以点击对话框下方的“选项”按钮,在弹出的对话框中把“系统表”勾选上,按确定即可;
Query查询?"/>
5. 下一步对话框是“查询向导 - 筛选数据”,选择你要筛选的列及条件,“下一步”即可,这里我们选择'SELLER',筛选方式选择“等于”,右边的值你可以随便填写,因为我们的目的是根据实际单元格的内容返回查询数据,而不是固定的某个值;
6. 下一步的“查询向导 - 排序顺序”窗口可以根据你的实际要求,如果对数值有排序要求可以相应设置;
7. “查询向导 - 完成”这个对话框需要选择第二项“在Microsoft Query 中查看数据或者编辑查询”,因为我们还需要将筛选和查询的条件指定到某个单元格的值上;
8. 点击“完成”后,就会返回Microsoft Query数据查询窗口,将我们在向导中随便填写的条件,修改为一对英文的中括号,然后按回车,这时候要求你输入参数,你直接点击“确定”即可;
Query查询?"/>
9. 点击工具栏上第四个按钮“将数据返回到Excel”或者执行“文件” → “将数据返回MicroSoft Excel”;
10. 稍等一会之后(如果时间太长,你可以按一下Esc键),就会弹出“导入数据”对话框,这里选择“属性”;
11. 在弹出的“连接属性”对话框中,在“定义”选项卡,点击最下端的“参数”,在弹出的“查询参数”对话框中选择你的条件所在单元格,并勾选“单元格值更改时自动刷新”选项,如下:
Query查询?"/>
12. 设置完参数后,“确定”并返回“导入数据”对话框,指定返回数据放置的单元格及数据形式即大功告成。
详细操作演示如下:
Query查询?"/>
第二种情况:某字段值包含指定单元格内容的数据查询
第二种情况跟上面的操作步骤是完全一致的,只需要将第5个步骤的筛选条件选择“含有”即可,
最后步骤8的编辑查询窗口中,将条件如下修改即可,即修改为:
Like '%' & [ ] & '%
Query查询?"/>
后面的步骤跟上面一模一样,不再详述,其实就是将参数用中括号代替,以方便后续选择参数,
如果你在步骤5中选择了多个条件,那你可以设置多个参数,只是需要具体参数对应的值即可。
好了,剩下的还是自己多动手操作吧,不然看完应该就忘得差不多了。
另外也说一下,这个其实就是SQL语句的查询,只是一般人都不会编写SQL语句,所以MS Query查询只是将这个过程可视化了,而SQL查询也同样有不足点,就是数据源位置如果发生变化,也可能是你本工作簿名称发生变化或者工作表名称发生变化,这个查询基本上就失效了,你需要重新按上面步骤再操作激活一次。
但是,单元格的位置发生移动时,查询的参数位置也是变化的,这样就非常实用。