先来说几个概念,比如……
DAX语言是什么?
答:……说来话长,简而言之,DAX,即数据分析表达式语言,是PowerPivot和SQL Server分析服务表格式的语言,具有强悍而高效的数据处理和挖掘能力……
等会,PowerPivot又是什么?
答:准确的说,我们这里聊的是PowerPivot for Excel,所以,我们这里说PowerPivot是Excel的一个加载项,它可以实施一个快速而强大的内存数据库,可以集成来自不同数据源的数据,通过在数据之间建立关系来构建数据模型,而且它取消 Excel 中的行和列限制,可以处理千万条数据不费吹灰之力……
听不懂…………真听不懂……
打个响指,不懂就不懂吧,概念的东西心里过一下有个大概也就行了。
言归正传,我们今天聊DAX语言在Excel列表中的查询应用,外甥打灯笼——照舅,还是用栗子来说事。
假设我们现在有两份工作簿,一份名为【数据源】,一份名为【我的分析】;
其中【数据源】工作簿的【销售表】中存放了如下图所示的数据,我们需要在【我的分析】工作簿中对其进行计算处理。
我们知道Excel函数在处理跨工作簿数据时有很大的局限性,当被引用数据所在的工作簿关闭时,除了部分引用类函数,很难从中取值,更不用说进一步的数据处理与分析了,所以这个问题并不适合采用函数处理。
你可以使用SQL,或者VBA,再或者DAX。前两者的方法我们多少分享过,DAX近乎绝迹,今就分享下DAX的常用数据查询语句。
第1步,获取外部数据。
首先,打开【我的分析】工作簿,单击【数据】选项卡下的【现有连接】,再弹出的对话框中选择【浏览更多】,如下图所示:
寻找到目标工作簿(数据源),选取目标表格后(销售表),单击【确定】按钮,在弹出的【导入数据】对话框中,勾选【将此数据添加到数据模型】。
【数据的放置位置】设置为现有工作表的A1单元格。单击【确定】按钮,销售表的数据将会完全读入到当前工作表中,并以“列表”的形式存在。
第2步,编辑DAX语言
右键单击数据列表的任意单元格,在弹出的右键快捷菜单中,依次单击【表格】→【编辑DAX】
在弹出的【编辑DAX】对话框中,命令类型选择【DAX】,即可根据实际数据分析需求,编辑DAX语言。
常用DAX查询语句如下:
(1) 字段选取。假设我们只需要获取【销售表】的“产品”和“数量”两个字段的数据。
EVALUATE
SUMMARIZE(‘销售表’,[产品],[数量])
(2) 条件查询。假设我们只需产品名为“大花”的销售记录。
EVALUATE
FILTER(‘销售表’,[产品]=”大花”)
(3) 汇总求和。假设我们需要获取每件商品的销售总数量。
EVALUATE
SUMMARIZE(‘销售表’,[产品],”总数量”,SUM(‘销售表'[数量]))
(4) 条件求和。假设我们只需要获取“祝洪忠”的销售总数量。
EVALUATE
SUMMARIZE(FILTER(‘销售表’,[产品]=”祝洪忠” ),[产品],”总数量”,SUM(‘销售表'[数量]))
(5) 汇总计数。假设我们需要获取每件商品的销售总次数。
EVALUATE
SUMMARIZE(‘销售表’,[产品],”总次数”,COUNTROWS(‘销售表’))
(6) 条件计数。假设我们只需要获取“看见星光”的销售总次数。
EVALUATE
SUMMARIZE(FILTER(‘销售表’,[产品]=”看见星光” ),[产品],”总次数”,COUNTROWS(‘销售表’))
(7) 名次查询。假设我们只需要获取销售总额前三名的数据,并按降序排列。
EVALUATE
SUMMARIZE(TOPN(3,’销售表’,CALCULATE(SUM(‘销售表'[总价]))),[产品],[总价]) ORDER BY [总价] DESC
(8) 去重查询。假设我们只需要提取去重复的产品名称。
EVALUATE
SUMMARIZE(‘销售表’,[产品])
未完,待补,下次再聊。哈哈,别紧脏。
拱手再见,祝安康。
图文制作:看见星光
专业的职场技能充电站
最新评论