前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerBI公式-Calculate最强大的函数

PowerBI公式-Calculate最强大的函数

作者头像
公众号PowerBI大师
发布2019-08-07 14:53:54
7.4K0
发布2019-08-07 14:53:54
举报

最强大的函数 Calculate

从Calculate的语法结构我们可以看出它能够把计算表达式和筛选条件整合起来。我们前面把度量值比作带着漏斗的计算器,那么Calculate就是漏斗与计算器之间的启动键,它能够赋予漏斗按指定的条件来执行过滤筛选,同时让计算器执行运算。

我们按上面制作一个矩阵表,行为'原材料'[咖啡种类],列为'杯型'[体积],值为[销售量]。

现在我们再做一个试验,再创建一个[销售量2]=Calculate([销售量], '原材料'[咖啡种类]="拿铁", '杯型'[体积]="480ml"),把矩阵表中的值替换为[销售量2]。你会得到下面这个表,是不是有些惊讶!难道是出Bug了?所有的值都为在拿铁咖啡和杯型体积=480ml限定条件下的销售量。

这个输出的结果是完全没有问题的,我们做这个例子是为了说明Calculate工作原理,从这个结果中可以得出Calculate函数的一个重要结论:

Calculate可对初始筛选增删改,即生成新的筛选上下文。

可以说掌握了Calculate就好比掌握了自定义功能,比方说标准的拿铁咖啡是由浓缩、牛奶、奶泡按一定比例构成,现在你可以自定义修改配方,加入香草和焦糖变成香草焦糖拿铁。

Calculate可以应用在多个表。注意到[销售量2]公式引用的是'原材料'表和'杯型'表,两个都是Lookup表。启动Calculate仿佛是开启了漏斗过滤器的一个阀门,使数据像水一样顺流而下,执行对数据表的筛选。

筛选条件拿铁和体积=480ml两者同时满足,是AND关系。在DAX中,如果想表达或的关系,运算符为“ || ”。但是在本例中如果直接写=Calculate([销售量],'原材料'[咖啡种类]="拿铁"||'杯型'[体积]="480ml") 这个是无效的。记住在Calculate中使用||时,必须是引用同一列,比如=Calculate([销售量],'杯型'[体积]="360ml"||'杯型'[体积]="480ml")这个是可以的。

有人称Calculate为超级版Sumif,但它的能力远比Excel中的Sumif强大多了。我们这个例子用的销售量是Sum求和,然而Calculate可以与各种聚合函数搭配组合Average, Count, Max...可以说是没有限制。要知道Excel中是没有Maxif/Minif这种公式的。

Calculate的强大还不止于此,它可以与各种筛选器函数搭配组合如All,Values,Filter来发挥更强大的功能,后面的几节我们分别介绍。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI大师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档