DAX函数计算各产品月度销量之和的标准差

如果计算月度各产品的标准差,这个问题很容易解决,需要用到STDEV.P这个函数写一个度量值,然后透视就可以得到结果:

DAX函数计算各产品月度销量之和的标准差

文章插图
【DAX函数计算各产品月度销量之和的标准差】我们的问题是要计算出各产品月度销量之和的标准差:
DAX函数计算各产品月度销量之和的标准差

文章插图
这里我们要用到的函数有:
  • STDEVX.P:计算标准差
  • SUMMARIZE:生成统计表格
  • CALCULATE:过程列计算
  • SUM:过程列计算
如果分步计算,我们第一步需要统计出各产品个月的销量之和:
DAX函数计算各产品月度销量之和的标准差

文章插图
这个统计工作可以使用SUMMARIZE函数来实现,我们在统计表中增加了一列“月销量”
接下来,我们把这个表格做链回表,重新加载到数据模型里,直接用STDEV.P函数写度量值,做透视表就可以的得到结果了 。
如果我们用一个度量值来得到结果,就需要使用STDEVX.P函数,这个函数有两个参数:
  • 表:使用SUMMAIZE函数生成的表
  • 表达式:最简单的表达式就是列名,我们使用“月销量”作为第二参数 。

DAX函数计算各产品月度销量之和的标准差

文章插图
然后做透视表就可以得到结果了 。
生成交叉表的函数有很多,我们再来介绍一个最相近的函数SUMMARIZECOLUMNS,这个函数比SUMARRIZE函数更简洁:
DAX函数计算各产品月度销量之和的标准差

文章插图
既然用度量值能够得到结果,那么用查询的方法也一定可以:
DAX函数计算各产品月度销量之和的标准差

文章插图
我们在学习DAX函数时总会遇到各种的问题,其实最重要的是我们要弄明白:
  • 参数的要求:列名,表达式,表
  • 返回结果:聚合结果,表,列,逻辑值
比如这样的度量值:
DAX函数计算各产品月度销量之和的标准差

文章插图
所谓不能转换成标量值,就是说SUMMARIZECOLUMNS函数的返回值是一个表格,不能作为度量值使用,度量值一定要是一个聚合结果 。
今天我们这个问题的解决过程中就用到:
  • SUMMARIZE函数返回表格的函数,
  • SUM返回聚合结果的函数,
  • STDEVX.P函数迭代函数,
更多DAX函数学习资料: