如何对 Excel 中的数据使用 SQL 查询

本文介绍了如何借助集算器在Excel中利用SQL进行数据查询,通过具体步骤展示了如何计算特定条件下的数据,例如统计2009年每个销售员的订单数,并进行了关联计算的例子,使得数据处理更加便捷高效。

Excel 提供了 Filter、透视表、Subtotal 等内置查询功能,但这些界面操作有时反而比较繁琐,也不够灵活。对于某些有 SQL 经验的人来讲,如果能直接用 SQL 查询数据就方便多了。

比如下面这张销售订单表:

 ABCDE
1sales 2009-2013
2OrderIDClientSellerIdAmountOrderDate
326TAS12142.42009-08-05
433DSGC1613.22009-08-14
584GC188.52009-10-16
6133HU11419.82010-12-12
732JFS34682009-08-13
839NR330162010-08-21
943KT321692009-08-27
1071JFE3240.42010-10-01
1199RA31731.22009-11-05
12440312010-07-29

目标:求2009 年每个销售员(C 列)的订单数,结果贴在 G 到 H 列。如下图:

 ABCDEFGH
1sales 2009-2013   
2OrderIDClientSellerIdAmountOrderDate selleridorderNum
326TAS12142.42009-08-05 13
433DSGC1613.22009-08-14 33
584GC188.52009-10-16 
6133HU11419.82010-12-12   
732JFS34682009-08-13   
839NR330162010-08-21   
943KT321692009-08-27   
1071JFE3240.42010-10-01   
1199RA31731.22009-11-05   
12440312010-07-29   

如果用SQL 就是一句:select sellerid,count(1) orderNum from table_name where year(OrderDate)=2009 group by sellerid,非常简单。

下面我们来看如何在Excel 里使用 SQL 查询计算数据。

1. 打开集算器

2. 用Excel 打开需要计算的文件,比如上例。

3. 选中A2:E12 区域,按 ctrl+C 复制到剪贴板。

4. 切换到集算器,选中A1 格,注意要让光标落到 A1 的编辑状态中,用 ctrl+V,将数据粘贴进 A1 格。

 

 

5. 在集算器的A2 格中填入 SQL 语句:$select sellerid,count(1) orderNum from {A1.import@t()} where year(OrderDate)=2009 group by sellerid,注意前面要有一个 $ 符号,这是集算器的约定,from 的内容要写成 {A1.import@t()},表示将 A1 里的字符串转为表格数据以便执行 SQL,@t 表示首行为列名。

 

 

6. 按F9 执行,然后点击 A2,右侧可以看到执行结果。

 

 

7. 按住shift(以便带上列名),在右侧点击 "copy data" 按钮,将 A2 的计算结果复制到剪贴板。

 

 

8. 在Excel 的 G2 单元格,用 ctrl+V 粘贴结果。

OK,大功告成。

再举一个关联计算的例子。比如某Excel 有orders和employee这两个sheet,现在要将两个sheet关联在一起。

前两步见上例。

3. 选中orders sheet 中的列名和数据,Ctrl+C 复制到剪贴板,Ctrl+V 粘贴到 esProc 的 A1 单元格。

4. 类似地,将employee sheet 复制粘贴到 esProc 的 B1 单元格。

5. 在A2 格执行 SQL:$select o.OrderID, o.OrderDate,o.Amount, e.Name, e.Dept
from {A1.import@t()} o left join {B1.import@t()} e on o.sellerID=e.empID

 

 

后续步骤见上例。

 

集算器能支持 SQL92 标准的大部分语法和函数,包括嵌套的子查询,甚至 WITH 都可以。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值