(四) 如何计算具有相同日期数据的移动平均?
数据表——表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项,即金额不为空。
- 是通过日历表(唯一值)进行汇总计算,而不是原表。
- 计算的平均值,是经过汇总后的金额,而不单纯是原来表中的列金额。
如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。