m0_46313224 2021-02-21 11:34 采纳率: 100%
浏览 194
已采纳

POWER BI 求移动平均的问题

 

  • 写回答

3条回答 默认 最新

  • ProfSnail 2021-02-21 16:16
    关注

    研究了两天,今天查阅了一下午的相关文献。总的来说,PowerBI里面有两个重要的概念,一个是列概念,一个是度量值概念,虽然列和度量值都可以使用DAX函数进行求值操作,但是两者所处的上下文是不同的。

    很常见的一个错误是把度量值的公式用在了列的计算公式上,就像你提的这个问题一样。如果将这个公式用在度量值上面,就可以准确的计算出来连续数日范围内的求和平均值,但是如果将这个公式放在列的计算过程中,就会导致计算每一行的上下文变成了当前行,所以求平均值的时候得出的数值总是错误的当前行的数值。

    PowerBI总的来说主要还是支持采用度量值的概念进行计算。度量值是PowerBI提出来的一种比较新颖且具有实时效应、优于此前Excel表格的一种方法。如果采用度量值,则只需要将计算的公式赋值给度量值,可以在数据可视化时候使用表格、矩阵、图表等方式依据筛选器筛选出的上下文实时计算这些数值。但是一旦采用了列的计算方法,则会将这一列的数值计算完全之后再重新加入到数据表中,完全丧失了PowerBI度量值可以依据筛选器变换上下文随时计算时候的优势。所以许多教程中都会推荐将尽量多可以使用度量值做到的事情用度量值进行计算。当然,如果能够掌握在列计算过程中,自己清楚所处的上下文,也可以使用列计算方式。最后这里给出使用列计算平均值的方法。

    目标:生成一列,获取每一行向前N天的所有金额的平均值。

    答案:添加列,列名为

    前3天平均值 = VAR   cur_date='表'[日期]

    RETURN  CALCULATE(AVERAGE('表'[金额]), FILTER(ALL('表'),'表'[日期]<=cur_date && '表'[日期]>=cur_date-2))

    以及使用度量值计算平均值的方法。

    度量值求平均 = CALCULATE(AVERAGEX(DATESINPERIOD('表'[日期],MIN('表'[日期]),-15,DAY),[度量值金额求和]))

           简而言之,在PowerBI里面,列的DAX计算函数写法和度量值的DAX计算函数写法不同,两者不能简单地直接复制粘贴进行比对。

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器