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条)

报告相同问题?

悬赏问题

  • ¥60 如何把照片修复成原始拍摄图
  • ¥80 Exited too quickly (process log may have details)
  • ¥15 爬知乎登录之后内容加载不出来
  • ¥15 怎么用protues测量通频带
  • ¥15 zepelin使用sparkInterpreter 异常
  • ¥15 paho mqtt 接收不到消息
  • ¥15 函数r关于两个分量y,z方向上的图像,分开画r随y的图像,r随z的图像
  • ¥15 如何用Matlab求Pearcey函数的数值积分?
  • ¥15 一个简单的函数定义问题,输出结果是相反的,怎么回事呢?
  • ¥15 页面加载报错,不知道怎么处理