Excel使用SQL语句查询和建立表之间的内连接

使用Excel处理文档数据的时候,有时会想到使用一些类似数据库SQL的处理方式,比如多个表之间的数据处理、表的内连接外连接等。最近学到了一个方法,使用Microsoft Query来执行excel中的SQL查询语句,虽然不是最好的方法,但起码能解决眼前的问题减少大部分的工作量,还是有必要记下来的。

导航目录

  1. 构造SQL语句
  2. 使用Microsoft Query
  3. 使用数据连接向导

构造SQL语句

假如我们现在有两个表,一个存放了用户id和用户名,一个有用户id和用户年龄:

01.png
02.png

现在想将连个表通过用户id(uid)连接起来成一个表,包含uid、UserName、UserAge三个字段,如果数据在数据库里,可以使用联合查询或者内连接方式:

select uid,UserNmae,UserAge from Sheet1,Sheet2 where Sheet1.uid=Sheet2.uid

或者

select uid,UserNmae,UserAge from Sheet1 inner join Sheet2 on Sheet1.uid=Sheet2.uid

使用Microsoft Query

现在在Excel工作薄中就需要改变一下方式,使用Microsoft Query导入excel数据并执行SQL语句:

  • 点击菜单栏中的数据->获取外部数据->自其他来源->来自MicrosoftQuery
    03.png
  • 在弹出框中选择Excel文件类型,确定
    04.png
  • 接着会要求选择execel数据文件路径,之后就会出现MicrosoftQuery的界面并弹出一个表的选择框,这里我们可以看见Sheet1$就是有uid和UserName的表,Sheet2$就是有uid和UserAge的表:
    05.png
  • 如果没有,可以点击选项,把系统表勾选上就可以看见了
    06.png
  • 不过现在这里不需要马上添加表,所以直接点关闭就好,然后点击MicrosoftQuery工具栏中的SQL图标
    07.png
  • 再把前面的SQL查询语句放在弹出的输入框里,当然这里得修改一下: Excel中每个表后面都有一个$,另外连接符.之前的表名称如果是中文和特殊符号最好使用反引号 ` 括起来:
    08.png
  • 输入好SQL语句后点击确定,就可以看见查询结果
    09.png
  • 现在把结果返回到excel中,点击文件->将数据返回MicrosoftExcel
    10.png
  • 现在Excel会询问数据显示方式,这里选择显示在一个新的表中
    11.png
  • 确定之后,就可以在一个新表Sheet3中看到处理好的数据了
    12.png

使用数据连接向导

当然还可以使用MicrosoftQuery执行其他的查询,还有我们在新版本Excel中的说明部分看到MicrosoftQuery受到一些功能限制,可以使用“数据连接向导”完成更多功能,不过这还得让我再摸索摸索了。

标签: excel, SQL查询, 内连接

添加新评论