学习CALCULATE函数(一)修订版
有位大佬曾经告诉过我,如果你深入理解了CALCULATE,那么你就相当于理解了DAX函数的基础,因为它是DAX函数中最灵活多变,也是适应性最强的函数之一。
CALCULATE的语法结构
DAX=
CALCULATE(<expression>,<filter1>,<filter2>...)
第一参数是计算的表达式,可以进行各种聚合运算
从第二参开始,是一系列的筛选条件,可以为空,如果是多个筛选条件的话,用半角逗号分隔开
返回结果为筛选出所有筛选条件的交集,并根据第一参的表达式计算出相对应的结果
◆ ◆ ◆◆ ◆
如果非要用几个简短的词汇来概括的话,白茶个人的理解就是:聚合、筛选、重新调整上下文条件。(不喜勿喷)
干说没啥意思,咱看下面这个例子:
这是事先准备好的示例文件,将其导入PowerBI中,如图:
可以看出来,这一部分的销售数据包含着手机、电脑,两种类型。夹杂着不同品牌、不同的售货方式,那么我们该如何对产品数量进行聚合呢?
编写如下代码:
数量=
SUM('表'[列])//这里我替换成了示例文件
如下图:
呈现结果如图,很明显,我们想要的是分别计算销售和退货,这样才符合我们对销售数量的计算,继续编写如下代码:
销售 =
VAR SQ =CALCULATE ( [数量], FILTER ( '表', [条件] = "N" ) ) //这里一样,可以替换成自己的数据
VAR HQ =CALCULATE ( [数量], FILTER ( '表', [条件] = "M" ) )
RETURNSQ - HQ
其结果如下:
怎么样,是不是按照我们的要求来了?
解释一下代码的意义。
VAR是将变量转换为常量,方便根据外部筛选计算,同时可以节省代码空间;SQ在这里的公式意义是聚合在表中销售方式为“销售”的数量,HQ是聚合“退货”的数量,并且还有在最后进行总数量计算。
在这里就是运用了CALCULATE的第二参筛选,使其符合我们心中的预期计算。(注释:CALCULATE中的参数也可以是常量,常量是不需要嵌套FILTER,只有是变量才需要嵌套。)
这是CALCULATE最经典的用法之一,单条件筛选求和,以后会继续分享学习CALCULATE的其他心得。我是白茶,一个PowerBI的初学者。
小伙伴们❤GET了么?
白茶会不定期的分享一些函数卡片
(文件在知识星球[PowerBI丨需求圈])
这里是白茶,一个PowerBI的初学者。
下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。
学习CALCULATE函数(一)修订版相关推荐
- 空间连接时计算总和_学习CALCULATE函数(六)丨帕累托之累计求和
(写在前面的话:非常感谢@韭菜大神和@冬神的指点,万分感谢.) 哎,说归说,还是需要继续学习CALCULATE函数,也是蛮无奈的.最近白茶在研究帕累托分析法,本期分享一下帕累托ABC分析法的基础--累 ...
- 学习CALCULATE函数(六)丨帕累托之累计求和
(写在前面的话:非常感谢 @韭菜大神和 @冬神的指点,万分感谢.) 哎,说归说,还是需要继续学习CALCULATE函数,也是蛮无奈的.最近白茶在研究帕累托分析法,本期分享一下帕累托ABC分析法的基础- ...
- 学习CALCULATE函数(四)修订版
生活就像一盒巧克力,你永远不知道下一颗是什么味道. > --<阿甘正传> ...
- 学习CALCULATE函数(五)修订版
哈喽,小伙伴们,头几次白茶分享了单条件聚合.多条件聚合.各类占比.以点带面聚合,本期呢,咱们继续研究CALCULATE函数. 白茶最近思考了一下,就是CALCULATE函数,为什么它是最灵活的,也是使 ...
- 学习CALCULATE函数(二)修订版
之前呢,白茶分享了一些CALCULATE的心得,但是要知道我们在对数据进行分析的时候,往往是多条件参考的,比如说哪个区域.哪个时间点.哪个状态的销售的最好,这就很明显需要我们在计算的时候把这些选项算进 ...
- 精品丨CALCULATE函数进阶版知识
CALCULATE函数详解 丨基础内容 语法=CALCULATE(<表达式>,<筛选器>,<筛选器>...) 基本用途:根据已有外部上下文构建一个新的上下文进行求值 ...
- 20171220-python学习笔记--函数类型
20171220-python学习笔记--函数类型 备注: #位置参数 #传入两个参数 def power(x, n):s = 1while n > 0:n = n - 1s = s * xre ...
- 黑马程序员——c语言学习心得——函数传递二维数组
黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化. 变量 ...
- Python学习之函数返回多个值
Python学习之函数返回多个值 问题的引出 Python中,一个函数能不能一次返回多个值? 在C语言中,函数最多返回一个值,如果要返回多个值,可以把这些值封装在一个结构体中.注意,C语言不允许函数返 ...
最新文章
- 关于mouseenter、mouseover、mouseout、mouseleave的理解
- java adt怎么打开项目,如何在Eclipse中打开Android Studio项目?
- python数据结构推荐书-腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
- 深度解析两种信用评估模型
- linux 杀掉php,Linux_在Linux系统中使用xkill命令杀掉未响应的进程,我们如何在Linux中杀掉一个资 - phpStudy...
- sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息
- ACM 学习笔记(一) 常用STL讲解
- CURL模拟访问网页
- ESXi社区版ne1000 VIB驱动的更新
- 指数随机变量 泊松过程跳_泊松过程
- 代码随想录第六天 LeetCode 242、349、202、1 (哈希表)
- Selenium元素定位神器工具谷歌浏览器插件-SelectorsHub介绍、安装和使用
- 游戏服务器是什么怎么租用
- 数电实验_时分秒计数器——终极版
- C# %253A%252F%252F 咋编码
- idea-maven父子工程的依赖问题
- 自学B站小甲鱼数据结构课程-C语言实现基础数据结构-栈-的例子
- 一个简单的数据查询到前端展示总结
- renderdoc相关
- adb向模拟器传递文件