
从今天开始,郑老师将和大家分享《SQL in Excel》一周一句学SQL系列图文和视频课程。
01 按部门轻松拆分数据,一句SQL而已!
【工作情景】
老师,如何把一个Excel表数据按部门拆成若干工作表,然后发给相应部门。

【情景分析】
很多学员遇到过此类问题,Excel中可以通过下列方法实现:
1)筛选:一个个部门筛选,然后复制粘贴,有些笨,不能更新......
2)高级筛选:每个部门分别设置筛选条件,好于筛选,但表中多了条件区域,不能刷新......
3)数组函数:可以实时刷新,但函数复杂,运算速度慢......
4) 数据透视表:借用数据透视表的查看明细数据的方法,一个个双击部门汇总字段,有多少个部门双击多少次,且不能刷新......
5) VBA:VBA当然是最优解,能刷新,速度快,但需要写代码,很多学员NO、NO、NO......
今天我们来学习第六种方法,
6)SQL语句:只需一句即可轻松化解,且可一键刷新。语句为:Select * from [数据表名$] where 条件
【SQL语句写在哪儿】
打开练习文件:01 按部门提取数据.xlsx(也可以新建一个Excel文件,专用于装各个部门数据),新建一个Sheet。
在新的Sheet中,点【数据】【现有连接】

弹开如下对话框,点【浏览更多】

找到Excel文件,如下图:

点击【打开】,弹开如下对话框:

选择“财务数据"(这是我们要拆分的表),点【确定】,弹开如下对话框:

点击左下角属性,弹开如下对话框:

点【定义】,界面如下:

图中,标红的区域就是写SQL语句的地方。写下如下SQL语句:select * from [财务数据$] where 部门='特化'

解释一下:select ... from 是查询语句的固定结构;where后接条件;*,代表提取表中的全部字段;[财务数据$],代表Excel表名;部门,为财务数据表中设置条件的字段;‘特化‘,为条件值。整个SQL语句翻译为:提取财务数据表中部门为’特化‘的全部数据。
点【确定】,弹开【导入数据】对话框,指定数据的放置位置为:A1单元格。

点【确定】,得到结果如下:

将工作表命名为"特化"即可。
其他部门的数据非常好做:
移动或复制“特化”工作表,命名为“安防”

【数据】【全部刷新】【连接属性】

弹开【连接属性】对话框,点【定义】,修改SQL语句中的条件'特化'为'安防',点【确定】即可。

结果如下:

其他部门数据依次类推。
有人会想,这不也得一个一个部门做吗?(对的,除非用VBA,其他方法都需要一个一个做)。
重要的是:这件工作一辈子只需要做一次。当“财务数据”表数据发生变化时,点【数据】【全部刷新】,所有工作表数据0秒更新完毕,完全没有时间反应,比VBA还快的多!

记住,我们今天学的SQL语句是:Select * from [数据表名$] where 条件。
视频学习,请见视频号。




