#Powerbi 理解VAR函数
VAR意思即为变量,在编程语言中,变量是一个重要概念,DAX作为一种语言也有变量概念,利用VAR,我们可以缩短我们一些DAX语句的长度,更清晰的表达我们的度量值计算逻辑。
举例说明:
我们要计算一个产品的同比增长率
如果不用VAR
第一步:需要计算今年的销售额
[Sales]=SUM(销售表[销售额])
第二步:计算去年的销售额
[Saleslastyear]=CALCULATE([Sales],SAMEPERIODLASTYEAR(日期表[日期])
第三步:计算同比增长率
[YoY%]=DIVIDE([Sales]-[Saleslastyear],[Saleslastyear])
总共需要三个度量值,才能完成整体的计算。
如果使用VAR函数
[YoY%]=
VAR Sales=SUM(销售表[销售额])
VAR Saleslastyear=
CALCULATE(Sales,SAMEPERIODLASTYEAR(日期表[日期])
RETURN
DIVIDE(Sales-Saleslastyear,Saleslastyear)
一个度量值即可计算完成。这里步骤即是,分别定义两个变量,为变量赋值,然后直接进行相除的运算,得出结果。VAR函数的基本语法形式,是先列变量,然后RETURN,返回后列出计算逻辑,这点需要平时多练习一下。
总结:使用VAR函数可以减少我们的整体度量值数量,对于一些需要多指标的度量值计算来说,是有力的工具。但是这也不意味着,我们所有的度量值都要强制使用VAR,如果是基础度量值,会被其他度量值经常引用的,那么我们还是可以分开书写度量值。合理使用VAR函数,需要根据实际情况来进行斟酌。
我是simone,期待下次的分享。
#Powerbi 理解VAR函数的更多相关文章
- 深入理解javascript函数系列第一篇——函数概述
× 目录 [1]定义 [2]返回值 [3]调用 前面的话 函数对任何一门语言来说都是一个核心的概念.通过函数可以封装任意多条语句,而且可以在任何地方.任何时候调用执行.在javascript里,函数即 ...
- 深入理解javascript函数系列第二篇——函数参数
× 目录 [1]arguments [2]内部属性 [3]函数重载[4]参数传递 前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传 ...
- 深入理解javascript函数系列第三篇——属性和方法
× 目录 [1]属性 [2]方法 前面的话 函数是javascript中的特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本 ...
- 深入理解JS函数中this指针的指向
函数在执行时,会在函数体内部自动生成一个this指针.谁直接调用产生这个this指针的函数,this就指向谁. 怎么理解指向呢,我认为指向就是等于.例如直接在js中输入下面的等式: console.l ...
- 理解JavaScript函数参数
前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...
- 深入理解javascript函数系列第一篇
前面的话 函数对任何一门语言来说都是核心的概念.通过函数可以封装任意多条语句,而且可以在任何地方.任何时候调用执行.在javascript里,函数即对象,程序可以随意操控它们.函数可以嵌套在其他函数中 ...
- 深入理解javascript函数系列第三篇
前面的话 函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本文是深入理解javascript函数 ...
- 深入理解JavaScript函数
本篇文章主要介绍了"深入理解JavaScript函数",主要涉及到JavaScript函数方面的内容,对于深入理解JavaScript函数感兴趣的同学可以参考一下. JavaScr ...
- css中var函数
引言: 在学习elementui的时候看到一个var.css, 其中写的全部都是以--开头的属性,上google查询不是css3新增的属性,于是决定一探究竟 :root { /* Transition ...
- 正确理解Python函数是第一类对象
正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器.匿名函数(lambda).函数式编程等高阶技术. 函数(Function)作为程序语言中不可或缺的一部分,太稀松平常了.但函数 ...
随机推荐
- idea 切换database数据库方言
在适配各种国产数据库时常常遇到存在数据库方言的情况,例如openGauss支持oracle兼容模式.. 在这种情况下,就需要在idea里对方言进行切换,否则无法执行oracle语法的sql. 1.连接 ...
- Go_day07
Go常用包 包的本质:创建不同的文件夹,来存放程序文件 Go语言的源码复用建立再包package基础之上 main包 Go语言的入口 main()函数所在的包必须是main包 main包需要引用代码, ...
- app工程目录结构
一.APP工程目录结构 APP工程分为两个层次,第一个层次是项目(这里在eclipse中是指workspace),另一个层次是模块(这里在eclipse中是指project) 模块依附于项目,每个项目 ...
- Spring源码分析之注册BeanDefinition
测试代码 public class ContextApplication { public static void main(String[] args) { ClassPathXmlApplicat ...
- 痞子衡嵌入式:RISC-V指令集架构MCU开发那些事 - 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是RISC-V指令集架构微控制器相关知识. RISC-V指令集最早要追溯到2010年,是加州大学伯克利分校的一个研究团队的项目,目标是设 ...
- 使用nsis美化安装向导后,安装时实现浏览器自定义协议打开
1. electron官方提供api,支持向注册表中写入协议,可通过浏览器打开 app.setAsDefaultProtocolClient('open-electron') 问题:1. 因为该方法时 ...
- hdfs的异构存储
目录 1 背景 2 hdfs异构存储类型和存储策略 2.1 hdfs支持的存储类型 2.2 hdfs如何知道数据存储目录是那种存储类型 2.3 存储策略 2.3.1 在hdfs中支持如下存储策略 2. ...
- ks.cfg 怎么读取光盘 (cdrom) 上的文件并执行对应的脚本
ks.cfg 文件怎么实现读取光盘 (CDROM) 上的内容并执行自定义脚本我们知道 linux 系统安装过程中,要想实现自动化安装,一般都是利用 Kickstart 这个工具实现,最重要的就是其配置 ...
- Gitee 码云与Git 交互
一.进入码云官方网站,注册用户 官网地址:https://gitee.com/ 二.创建远程仓库 [1]点击右上角的 + 号进行创建
- Kafka 消费者读取数据
消费者不需要自行管理 offset(分组+topic+分区),系统通过 broker 将 offset 存放在本地.低版本通过 zk 自行管理.系统自行管理分区和副本情况.消费者断线后会自动根据上一次 ...