美文网首页工具癖PowerBI专栏Power BI干货
在Power BI中学会用VAR定义变量

在Power BI中学会用VAR定义变量

作者: PowerBI星球 | 来源:发表于2019-01-11 18:04 被阅读13次

    前面介绍如何使用DAX生成日期表的时候,使用了VAR,有人留言问这个VAR怎么理解,那么这篇文章就来介绍VAR以及它的用法。

    VAR是VARIABLE的缩写,意思为变量,任何一个编程语言中,变量都是一个非常重要的基础概念,DAX当然也是一种语言,也有变量这个概念。如果以前学过编程,对这个应该很熟悉;没学过也没有关系,看了本文你就理解了。

    我们人都有记忆能力,电脑也有记忆能力,并且比人的记忆能力更强大更稳定,那么如何利用电脑的记忆能力呢,就是利用变量。

    变量就是可以改变的量,比如把当天日期定义为一个变量,那么通过这个变量电脑就记住了今天是4月29号,到了明天就变成4月30号了。

    通过变量可以随心所欲的控制电脑的记忆,需要了就用,用完了可随时丢开,再想使用了再拿过来。

    与变量想对应的就是常量,比如新中国成立日期是1949年10月1日,就是一个常量,电脑中定义以后,无论时光怎么流逝,电脑中这个记忆都不会改变。

    在DAX中,就是通过VAR来控制电脑的记忆的。

    VAR语法

    VAR的语法规范很简单,就是把一个表达式定义为一个名称,

    VAR 变量名=表达式

    其中变量名不能和模型中现有的表名、字段名相同,也不能使用数字作为第一个字符,不能使用空格等,这个不用刻意记,如果提示变量名不符合规范,重新命名一下就是了。

    定义变量是为了使用,是要返回结果的,这个操作由RETURN来完成,具体使用方式,看下面的示例。

    VAR使用示例

    假如有一个产品销售数据,现在计算每种产品的同比增长率,如果不使用VAR,我们可能是这样来计算的,

    1,新建度量值,

    [Sales]=SUM(销售表[销售额])

    2,计算去年销售额,

    [Saleslastyear]=CALCULATE([Sales],SAMEPERIODLASTYEAR(日期表[日期])

    3,计算同比增长率

    [YoY%]=DIVIDE([Sales]-[Saleslastyear],[Saleslastyear])

    而使用VAR,新建一个度量值就可以搞定:

    [YoY%]=

    VAR  Sales=SUM(销售表[销售额])

    VAR  Saleslastyear=

    CALCULATE(Sales,SAMEPERIODLASTYEAR(日期表[日期])

    RETURN

    DIVIDE(Sales-Saleslastyear,Saleslastyear)

    这个度量值先定义一个变量“Sales”,然后定义第二个变量的时候,还利用了第一个变量,两个变量定义完成后,返回两个变量相除的结果。

    如果把这个度量值放入到上下文中,比如当前上下文为产品甲,电脑中会先记住产品甲的“Sales”,然后记住产品甲的“Saleslastyear”,最后通过RETURN后面的表达式,调用上面的记忆,执行运算,得到产品甲的同比增长率。

    通过这个例子可以看出,VAR可以简化度量值的书写,并便于理解。并且它完成运算以后结果就被电脑记忆下来,需要时可以随时调用,而无需重新运算,大大提升了DAX的运算性能。

    它还有一个小功能就是替代EARLIER函数。

    替代EARLIER函数

    在之前介绍EARLIER函数的时候,曾举了一个计算累计销量的例子,

    用的是下面的DAX编写的新建列:

    SUMX (FILTER('订单表',[序号]<=EARLIER([序号])&&

    [产品名称]=EARLIER([产品名称])),[销售数量])

    现在用VAR可以这样写:

    VAR Index=[序号]

    VAR ProductID=[产品名称]

    RETURN

    CALCULATE(SUM([销售数量]),filter('订单表',

            [序号]<=Index&&[产品名称]=ProductID))

    可以返回同样的结果,比EARLIER更易于理解。

    生成日期表的文章中,其中有两种方式也是综合使用VAR的例子,再仔细看一遍也可以加深对VAR的理解。

    公众号回复「PowerBI」,获取145页入门电子书,2019年,送自己一个技能!

    THE END

    .

    相关文章

      网友评论

        本文标题:在Power BI中学会用VAR定义变量

        本文链接:https://www.haomeiwen.com/subject/wnxfdqtx.html