美文网首页
理解Power BI VAR函数的三个特点

理解Power BI VAR函数的三个特点

作者: 大鹏_Power | 来源:发表于2020-10-02 16:37 被阅读0次

    Power BI在使用DAX编写公式时,使用VAR可以使公式更加简洁且计算效率更高。我在使用VAR函数时遇到一个问题,后来通过佐罗老师关于“Power BI 自动化用户运营分析”教程中VAR的章节,理解了VAR的三个特性,解决了一个一直没有理解的事情。

    VAR具备以下三个特点:

    第一个特点

    嵌套的多层函数,可以使用VAR写成单行的语句

    比如计算月环比,直接使用函数嵌套如下:

    月环比 普通 = 
    DIVIDE( 
        [销售 销售总额] - 
        CALCULATE( [销售 销售总额], DATEADD( 'D_日期表'[日期], -1, MONTH ) ), 
        CALCULATE( [销售 销售总额], DATEADD( 'D_日期表'[日期], -1, MONTH ) )
    )
    

    使用VAR编写可以是下面的效果:

    月环比 VAR = 
    var ThisMonth = [销售 销售总额]
    var LastMonth = CALCULATE( [销售 销售总额], DATEADD( 'D_日期表'[日期], -1, MONTH ) )
    return DIVIDE( ThisMonth - LastMonth, LastMonth )
    

    公式越复杂,VAR的效果越明显。

    第二个特点

    只要VAR+RETRUN构成一个闭合的语句,可以任意嵌套

    下面的语句是成立的,可以在VAR里面嵌套成对的VAR+RETURN:

    月环比 VAR嵌套 = 
    var ThisMonth = [销售 销售总额]
    var LastMonth = 
        var t1 = -1
        var t2 = CALCULATE( [销售 销售总额], DATEADD( 'D_日期表'[日期], t1, MONTH ) )
        return t2
    return DIVIDE( ThisMonth - LastMonth, LastMonth )
    

    第三个特点

    VAR计算的结果是不变的量,因此不能使用VAR命名的变量作为函数中为值类型的参数,但可以使用在筛选类型的参数上。

    这句话我也尝试了好几种表述方式,但都比较绕。比如下面这个例子就是不成立的,CALCULATE第一个参数不支持使用VAR指定的变量,但可以使用在CALCULATE第二个参数上:

    月环比 VAR 错误示范 = //不会报错,但计算的结果是错误的
    var SalesVolume = [销售 销售总额 万元]
    var Exhibition = CALCULATE( SalesVolume, 'D_日期表'[年份] = 2020 )
    return if( ISFILTERED( 'D_日期表'[月份(M)] ), SalesVolume, Exhibition )
    

    正确示范如下:

    月环比 VAR 正确示范 =
    var SalesVolume = [销售 销售总额 万元]
    var Parameter = 2020
    var Exhibition = CALCULATE( [销售 销售总额 万元], 'D_日期表'[年份] = Parameter )
    return if( ISFILTERED( 'D_日期表'[月份(M)] ), SalesVolume, Exhibition )
    

    第三个特点是最容易犯错的地方,VAR定义的变量指的是不变的量。要想在CALCULATE中正确使用第一个参数,则需要使用现有的度量值,或重新编写该参数的计算公式。

    总结:

    学习VAR函数的朋友可以看下这三个特点,有助于更加方便的使用VAR将DAX公式编写的更加简洁、清晰、高效。

    相关文章

      网友评论

          本文标题:理解Power BI VAR函数的三个特点

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