Power Pivot中如何计算具有相同日期数据的移动平均?

(四) 如何计算具有相同日期数据的移动平均?

数据表——表1

效果

1. 解题思路

  • 具有相同日期数据,实际上也就是把数据进行汇总求和后再进行平均值的计算。其余和之前的写法一致。
  • 同时我们可以通过建立日期表来确定唯一值后进行汇总。
  • 建立数据表和日期表之间的关系

2. 函数思路

A. 添加辅助排名度量
代码语言:javascript
复制
汇总金额:=SumX(RelatedTable('表1'), '表1'[金额])

解释:通过日期关联,把对应日期的金额进行汇总求和。

B. 添加序列度量
代码语言:javascript
复制
排名:=CountRows(Filter(All('日历'),
                      [汇总金额]<>Blank() && '日历'[Date]<=Min('日历'[Date])
                      )
               )

解释:这里需要2个条件,除了日历条件,还需要添加一个日期是否有值的条件,也就是汇总金额这里需要为非空。

C. 排名变量进行固定
代码语言:javascript
复制
Var pm=[排名]

3. 函数汇总

代码语言:javascript
复制
5日移动平均:=
var pm=[排名]
return
if([排名]>5 && [汇总金额]<>BLANK() ,   //满足5日均线计算条件
   AverageX(Filter(All('日历'),
                   [排名]>=pm-5 && [排名]<pm),   //筛选出的符合要求的日期区间表
           [汇总金额]
           ),
   Blank()
   )

至此同日期数据进行移动平均的计算就出来了。我们来看下和之前比差异性在哪里?

  • 满足计算的条件增加1项,即金额不为空。
  • 是通过日历表(唯一值)进行汇总计算,而不是原表。
  • 计算的平均值,是经过汇总后的金额,而不单纯是原来表中的列金额。

如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。