网站首页 > 技术文章 正文
Excel 提供了 Filter、透视表、Subtotal 等内置查询功能,但这些界面操作有时反而比较繁琐,也不够灵活。对于某些有 SQL 经验的人来讲,如果能直接用 SQL 查询数据就方便多了。
比如下面这张销售订单表:
目标:求2009 年每个销售员(C 列)的订单数,结果贴在 G 到 H 列。如下图:
如果用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 都可以。
猜你喜欢
- 2025-09-03 数据库教程-SQL Server多条件模糊查询
 - 2025-09-03 数据库教程-SQL Server海量数据的快速存储
 - 2025-09-03 数据库教程-SQL Server数据字典查询及导出
 - 2025-09-03 利用VBA+SQL查询Excel工作表数据(基本查询)
 - 2025-09-03 紫金桥组态软件基于内置SQL查询历史数据的方法
 - 2025-09-03 【开源推荐】SQL 审核查询平台Archery v1.7.9 发布,数据可归档
 - 2025-09-03 SQL - 通过TSQL代码方式进行简单的数据查询 153
 - 2025-09-03 利用VBA+SQL查询Excel工作表数据(分组查询)
 - 2025-09-03 这才是数据分析全流程,而不是跑个SQL
 - 2025-09-03 见过最惊艳的 SQL 查询语句是什么?揭秘高效查询的奥秘
 
- 最近发表
 - 
- 聊一下 gRPC 的 C++ 异步编程_grpc 异步流模式
 - [原创首发]安全日志管理中心实战(3)——开源NIDS之suricata部署
 - 超详细手把手搭建在ubuntu系统的FFmpeg环境
 - Nginx运维之路(Docker多段构建新版本并增加第三方模
 - 92.1K小星星,一款开源免费的远程桌面,让你告别付费远程控制!
 - Go 人脸识别教程_piwigo人脸识别
 - 安卓手机安装Termux——搭建移动服务器
 - ubuntu 安装开发环境(c/c++ 15)_ubuntu安装c++编译器
 - Rust开发环境搭建指南:从安装到镜像配置的零坑实践
 - Windows系统安装VirtualBox构造本地Linux开发环境
 
 
- 标签列表
 - 
- cmd/c (90)
 - c++中::是什么意思 (84)
 - 标签用于 (71)
 - 主键只能有一个吗 (77)
 - c#console.writeline不显示 (95)
 - pythoncase语句 (88)
 - es6includes (74)
 - sqlset (76)
 - apt-getinstall-y (100)
 - node_modules怎么生成 (87)
 - chromepost (71)
 - flexdirection (73)
 - c++int转char (80)
 - mysqlany_value (79)
 - static函数和普通函数 (84)
 - el-date-picker开始日期早于结束日期 (76)
 - js判断是否是json字符串 (75)
 - c语言min函数头文件 (77)
 - asynccallback (87)
 - localstorage.removeitem (77)
 - vector线程安全吗 (73)
 - java (73)
 - js数组插入 (83)
 - mac安装java (72)
 - 无效的列索引 (74)
 
 
