杭州网站搭建,php图片展示网站,深圳做公司网站,利用阿里云虚拟主机做网站前面介绍如何使用DAX生成日期表的时候,使用了VAR#xff0c;有人留言问这个VAR怎么理解#xff0c;那么这篇文章就来介绍VAR以及它的用法。VAR是VARIABLE的缩写#xff0c;意思为变量#xff0c;任何一个编程语言中#xff0c;变量都是一个非常重要的基础概念#xff0c;…前面介绍如何使用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 SalesSUM(销售表[销售额])VAR SaleslastyearCALCULATE(SUM(销售表[销售额]),SAMEPERIODLASTYEAR(日期表[日期]RETURNDIVIDE(Sales-Saleslastyear,Saleslastyear)这个度量值先定义一个变量“Sales”然后再定义第二个变量的时候两个变量定义完成后返回两个变量相除的结果。如果把这个度量值放入到上下文中比如当前上下文为产品甲电脑中会先记住产品甲的“Sales”然后记住产品甲的“Saleslastyear”最后通过RETURN后面的表达式调用上面的记忆执行运算得到产品甲的同比增长率。通过这个例子可以看出VAR可以简化度量值的书写并便于理解。并且它完成运算以后结果就被电脑记忆下来需要时可以随时调用而无需重新运算大大提升了DAX的运算性能。它还有一个小功能就是替代EARLIER函数。替代EARLIER函数在之前介绍EARLIER函数的时候曾举了一个计算累计销量的例子用的是下面的DAX编写的新建列SUMX (FILTER(订单表,[序号]EARLIER([序号]) [产品名称]EARLIER([产品名称])),[销售数量])现在用VAR可以这样写VAR Index[序号]VAR ProductID[产品名称]RETURNCALCULATE(SUM([销售数量]),filter(订单表, [序号]Index[产品名称]ProductID))可以返回同样的结果比EARLIER更易于理解。上一篇文章中生成日期表的DAX其中有两种方式也是综合使用VAR的例子再仔细看一遍也可以加深对VAR的理解。公众号:PowerBI星球