3.
后⾯这句话似乎很难理解,举例来说,倘若我们需要获取上图所⽰表格(
arr = Sheet1.[a1].CurrentRegion
ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
For i = 1 To UBound(arr)
If arr(i, 2) >= 80 Then
k = k 1
brr(k, 1) = arr(i, 1)
brr(k, 2) = arr(i, 2)
End If
Next
[d:f].ClearContents
[d1].Resize(k, 2) = brr
End Sub
你需要通过VBA编程告诉计算机每⼀步怎么⾛,数据从哪⾥来,从哪⾥开始遍历,⾏列是多少,符合条件的数据装⼊哪⾥,怎么装等等……
⽽如果⽤声明式SQL语⾔呢?只要告诉计算机我要什么就可以了。
SELECT 姓名,成绩 FROM [Sheet1$] WHERE 成绩>=80
我要Sheet1表(FROM [Sheet1$])……成绩⼤于等于80(WHERE 成绩>=80)……姓名和成绩的数据(SELECT 姓名,成绩)。
只要结果,不问过程。
就酱紫的声明式霸道总裁范。
4.resize函数vba
为什么要学习SQL In Excel(Excel⽀持的SQL语⾔)呢?
换⾔之,相⽐于Excel其它功能,例如函数、VBA、POWER PIVOT等,SQL有何优势?
⾸先,必须严肃脸说明的是,对于普通Excel使⽤者⽽⾔,VBA、SQL以及以后提及的ADO并不是⾮学不可的,⾮学不可的是基础操作、函数、透视表、图表……
然⽽⼤数据时代,对于另外相当⼀部分表族⽽⾔,Excel⽤久了,慢慢的,会意识到⼀个⼤问题;曾经在你⼼中⽆⽐强⼤的Excel函数,原来只适合⼩数据的腾挪躲闪;当数据量稍⼤后,函数这货就像未嗑⼠⼒架的姚明——不来劲的很哩。
SQL In Excel则可以解决函数处理⼤数据效率低下的问题,嗯~使⽤SQL语⾔,你甚⾄可以将Excel作为前台数据管理界⾯,数据库(例如ACCESS)作为后台数据储存仓库,进⽽储存、分析、管理远超Excel体积的数据量。
打个响指,我们之前讲过,VBA处理数据的核⼼是数组字典,倘若SQL和它⽐较起来有何优劣?
作为⼀个正努⼒成为乐观主义者的⼈,星光还是先说优点吧。
通过上⾯代码的栗⼦我们很直观的看到,SQL的书写要⽐VBA编程简洁的多,甚⾄⽐⼩巧灵的函数还要
简洁;此外,SQL⾼效处理的数据量上限,也是远远⼤于VBA数组字典的;字典装上50W的数据,⼀般电脑的计算效率就开始垂直下降了,⽽SQL 还是风轻云淡脸;最后,SQL ADO VBA可以通过Excel直接处理数据库(例如ACCESS)来源的数据……。
然后说劣势。
SQL作为⼀种数据库结构化查询语⾔,对表的结构和数据的类型有着严格的要求,⽽严格来说
Excel并⾮数据库,尽管它⽀持ADO和SQL(谁说装了数据就是数据库的?拉出去⾃弹⼩丁丁500下,好冷)。Excel对表的结构和数据的类型并没有严格的限定,例如合并单元格,多⾏表头,空记录,⼀列之内存在多种数据类型等等劣迹存在,因此,字典数组处理EXCEL数据的灵活性要远远⾼于SQL,毕竟数组遍历在⼿,天下我有,什么合并单元格多⾏表头,统统都是浮云……
最后,SQL In Excel 和Power BI For Excel(以下简称Power BI)相⽐优势在哪⾥?
从Excel的⾓度讲,SQL和Power BI最⼤的优势是,SQL⽀持VBA语⾔。通过ADO执⾏SQL语⾔,VBA可以获取、分析、管理多种来源的数据,甚⾄进⽽对获取的数据再搭配字典、数组以及各种Excel⾃带的功能作进⼀步⾃动化、智能化处理……换句话说,VBA运⾏SQL语句后,可以再整合Excel所有的功能进⼀步处理数据,除了Power BI——是的,Power BI不⽀持VBA,耸肩,⽆奈。
从数据的⾓度讲,Power BI是⼀款数据分析的软件,包含了M和DAX查询语⾔,SQL则是⼀种数据管理的语⾔。查询和管理有何不同?简⽽⾔之,SQL不但可以查询数据,还可以操纵数据,例如增、改、删等等。⽽M和DAX语⾔对数据则只能查询,不能操纵。就像我们在Power BI⼊门教程中讲的,它只能改变⾃⼰,永远⽆法改变对⽅(指的是数据源,不是我们的爱情)另外,SQL是⼀门⼴被接受和⽀持的语⾔。Excel,ACCESS,R,Python,JAVA,C等等软件和语⾔,均是⽀持SQL的;⽽POWER BI显然没有这样的待遇。
我们很久以说,作为⼀名数据分析员有三个必须掌握的技能,SQL获得数据,EXCEL分析数据,PPT展现数据。POWER BI出现后,有⼈说学了POEWR BI,就不⽤学SQL了。如果你能意识到两者之间的不同,显然就会明⽩这是低头说话不看前路哦。
当然,如果你是⼀名数据分析员,POWER BI最好也是要学的。原因很简单,它很简单。
5.
说了这么多,那么,如何在Excel中使⽤SQL?
⼀般有三种⽅法。
⼀种是MS Query法,不常⽤,省略。
⼀种是OLE DB法,具体过程是,单击Excel【数据】选项卡下的【现有链接】,在弹出的【现有链接】对话框中,单击【浏览更多】,选取⽬标⽂件后,依次【确定】,得到下⾯的【导⼊数据】对话框。
这种⽅法通常搭配数据透视表(上图显⽰⽅式选择【数据透视表(P)】),也可以搭配Power Pivot(⾼级版本Excel勾选上图的【将此数据添加到数据模型】)。
单击【属性】按钮后,得到【链接属性】对话框,再单击【定义(D)】选项卡,即可在【命令⽂本】编辑
框中输⼊SQL语句,并【确定】执⾏。
关于上图【连接字符串】中的关键字和关联值,我们会在以后的AOD部分详加说明,此处先过。
最后⼀种是VBA ADO法,也是我们后⽂中常使⽤的⽅法。
相⽐于第2种⽅法,VBA ADO法的优点……
⾸先是⾃动化,它可以使⽤VBA代码绑定ADO,设定链接字符串,执⾏SQL语句,进⽽⼀键获取分析数据。其次,VBA编程可以使⽤变量编辑SQL语句,这远⽐第2种⽅法⼿动输⼊SQL语句要灵活智能的多,另外,VBA ADO法不但可以SELECT(查询)数据,还可以
INSERT(增)DELETE(删)UPDATE(改)数据库的数据等。
6.
……握握⽖,今天我们就先聊到这⾥吧,下期我们简单聊下ADO,然后聊SQL语⾔中最常⽤的SELECT语句……
嗯,忘记回答⼀个很重要的问题。
SQL难吗?
⼊门很容易,精通很难。
对于EXCELer,并没有精通的必要性,搭配ADO以及VBA⾃⾝的功能,例如数组和字典,⼊门SQL已经⾜够了。
你要对……我有信⼼(忐忑脸)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论