如果计算月度各产品的标准差,这个问题很容易解决,需要用到STDEV.P这个函数写一个度量值,然后透视就可以得到结果:
我们的问题是要计算出各产品月度销量之和的标准差:
这里我们要用到的函数有:
- STDEVX.P:计算标准差
- SUMMARIZE:生成统计表格
- CALCULATE:过程列计算
- SUM:过程列计算
如果分步计算,我们第一步需要统计出各产品个月的销量之和:
这个统计工作可以使用SUMMARIZE函数来实现,我们在统计表中增加了一列“月销量”
接下来,我们把这个表格做链回表,重新加载到数据模型里,直接用STDEV.P函数写度量值,做透视表就可以的得到结果了。
如果我们用一个度量值来得到结果,就需要使用STDEVX.P函数,这个函数有两个参数:
- 表:使用SUMMAIZE函数生成的表
- 表达式:最简单的表达式就是列名,我们使用“月销量”作为第二参数。
然后做透视表就可以得到结果了。
生成交叉表的函数有很多,我们再来介绍一个最相近的函数SUMMARIZECOLUMNS,这个函数比SUMARRIZE函数更简洁:
既然用度量值能够得到结果,那么用查询的方法也一定可以:
我们在学习DAX函数时总会遇到各种的问题,其实最重要的是我们要弄明白:
- 参数的要求:列名,表达式,表
- 返回结果:聚合结果,表,列,逻辑值
比如这样的度量值:
所谓不能转换成标量值,就是说SUMMARIZECOLUMNS函数的返回值是一个表格,不能作为度量值使用,度量值一定要是一个聚合结果。
今天我们这个问题的解决过程中就用到:
- SUMMARIZE函数返回表格的函数,
- SUM返回聚合结果的函数,
- STDEVX.P函数迭代函数,
更多DAX函数学习资料:
,