问题来源

  韩老师讲过好几种合并工作表分析数据的方法,包括用SQL语句、数据查询、合并计算、数据透视表。经常有朋友使用这几种方法,其中有几位朋友也曾出现过这样或那样的问题。

  今天韩老师讲一种不用合并工作表,直接可以查询的方法。

  示例数据为员工六个月的业绩表:

  结果:

  关键操作

  1、新建【查询】工作表,利用【数据验证】,在A2单元格生成“姓名”下拉选择列表。因为1-6月份中6月份的姓名最全,所以序列来自6月份的所有姓名。如下图:

  2、在【查询】工作表中,选择【数据】——【自其他来源】——【来自Microsoft Query】,如下图:

  3、在【选择数据源】对话框中选择【ExcelFiles】,确定,如下图:

  4、选择当前EXCEL文件名,确定。如下图:

  5、在【查询向导—选择列】对话框中,将左侧的【可用的表和列】中的“1月”表的列添加到右侧【查询结果中的列】预览框中,如下图:

  6、在上一步中,假设【查询向导—选择列】对话框中,将左侧的【可用的表和列】预览框为空,按如下操作:

  7、此步默认,点击【下一步】:

  8、此步默认,点击【下一步】:

  9、在跳出的【查询向导—完成】框中如下操作:

  10、在跳出的【导入数据】对话框中,选择【表】,指定查询数据存放位置的起始单元格,本示例中,查询结果的起始单元格为A4,然后选择【属性】,如下图:

  11、在【连接属性】对话框的【定义】选项卡下【命令文本】中,填入以下命令:

  select * from(select * from [1月\$] union all select * from [2月\$] union all select * from [3月\$] union all select * from [4月\$] union all select * from [5月\$] union all select * from [6月\$] ) where 姓名= ?

  (此语句,不要害怕,其实都是重复的select * from [1月\$] unionall模式,只改其中的工作表名字,几个工作表重复几次,最后一次去掉unionall 。)

  如下图:

  12、在【输入参数值】对话框中,指定参数为“姓名下拉列表”所在单元格,并勾选如图两个选项:

  13:、最终完成数据导入:

  选择姓名,即出现本文开始的结果动图。

查看原文 >>
相关文章