看到题目,很多人会产生疑问。比如说。
什么是DAX语言?
a:简而言之,数据分析表达式语言(DAX)是PowerPivot和SQL server分析服务表格式的语言,具有强大的高效数据处理和挖掘功能。
等等,动力枢轴又是什么?
答:确切地说,我说的是适用于Excel的PowerPivot。因此,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('销售表',[产品])
未完,待补,下次再聊。
嗯,我们下次聊DAX语言在POWERPIVOT数据建模和分析中的常用语句,哈哈,别紧脏。
拱手再见,祝安康,祝凉爽。
图文制作:看见星光
ExcelHome,微软技术社区联盟成员