Excel:GroupBy Person,最近N次出现的滚动平均值

时间:2018-09-20 05:01:00

标签: excel

我有一些数据想应用滚动平均值。我想按person进行最近3天的分组,并根据他们在该日期之前工作的最近3次平均GA进行分组。

今天:D1 = 9/19/2018或=TODAY()

person  work_date   GA
JOHN    10/7/2017   2
MIKE    10/7/2017   2
JAKE    10/7/2017   2
JOHN    10/6/2017   3
MIKE    10/6/2017   3
JAKE    10/6/2017   3
JOHN    10/5/2017   2
MIKE    10/5/2017   2
JAKE    10/5/2017   2
JOHN    10/4/2017   20
MIKE    10/4/2017   20
JAKE    10/4/2017   20
JOE     9/30/2017   3
JOE     9/23/2017   2
JOE     5/22/2017   2
JOE     4/22/2017   20
AVA     3/22/2017   10

想知道工作表中的单元格是否应为=TODAY(),因此公式中有一个日期可用来检查最近TODAY的最近3天。

结果:

person  GA
JOHN    2.33
MIKE    2.33
JAKE    2.33
JOE     2.33
AVA      10

我知道您可以使用数据透视表,但是数据中有些人的人数比其他人多,因此这将超出我该人最近工作过的三倍的平均值。而且,如果我仅使用过去x天的数据,那么像乔这样的人和他的第三天工作根本就不会出现在数据中,而将他的平均值从2.33提高到2.50。如果一个人的数据少于两次,那么他们仍然应该像AVA一样平均显示10。我发现AVERAGEIF的一些滚动平均值,但我感觉不太像。

1 个答案:

答案 0 :(得分:2)

具有一些技巧的AVERAGEIFS就足够了。

@Entrypoint.attach(group='group.subgrp', name='dummy_name')
def my_dummy_function():
    ....

enter image description here