今天分享的是一种DAX函数的新写法,如果你之前从没有接触过这种写法,学完以后你一定会大开脑洞。
DAX就像Excel函数一样,是用于数据分析的函数式语言。函数式语言与编程语言最大的区别也许就是函数式语言将运算方式封装好了,使用者只需要以参数的形式完善函数的各个部分即可。
DAX每一个函数都有固定的语法。比如CALCULATE函数的语法如下:
CALCULATE([,[,[, …]]])
今天分享的 DAX 写法非同寻常。
假设在我们已有的模型中,有一个如下计算销售额的度量值:
销售额 = SUM('订单表'[销售额])/SELECTEDVALUE('单位转换表'[数值])
模型中包含多个已经建立好关系的表格,其中产品表包含归属的产品类别字段。
如果我们需要计算产品类别为【家具】的销量的话,按住正常的DAX语法规则,写出来的函数应该是这样的:
家具销售额 = CALCULATE([销售额],'产品表'[产品类别]="家具")
放在一个包含年、月在行上的矩阵中进行展示,求得结果如下:
以上矩阵计算了每年每月的家具类产品的销售额。其中度量值【家具销售额】写法遵循了CALCULATE的常规语法。
其实我们还可以这样写,先看动图演示:
熟悉DAX函数的朋友一定看的一脸懵,为什么可以这样写?为什么写的过程中不会报错?为什么写的时候会有智能填充?
最后写出来的计算家具类别销售的度量值是:
家具销售额_脑洞版 = [销售额]('产品表'[产品类别] = "家具")
虽然写的过程中没有报错,还得看看运行结果是否正确啊。将度量值【家具销售额_脑洞版】放到矩阵中验证,计算结果是一致的。
这就是今天给大家介绍的DAX函数脑洞写法,直接在度量值后方加上括号和筛选条件,函数语法可以总结为:
[度量值]([筛选器1],[筛选器2])
大家快去试试吧。