您的位置 首页 > 数码极客

【多表查询】99%的人不知道:Excel多表查询竟然还有这种方法

看到题目,很多人会产生疑问。比如说。

什么是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,微软技术社区联盟成员

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐