vba - 除包含最小日期之外的所有行的平均值

时间:2017-04-18 19:04:47

标签: excel-vba vba excel

我想编写一个vba代码来计算数字列的平均值(第三个),但除了包含最小日期的行外,因为我想将第一天的数据与其他日期的数据进行比较

但是,我也要考虑这一年。除了AN17,我想要将所有AN16平均。

我不知道该怎么做,这里的任何内容似乎对我都有用。

这是我的数据:

AN17    01-mar-17   65298340734
AN17    02-mar-17   30382114732
AN17    03-mar-17   25149388406
AN17    04-mar-17   54249361285
AN17    05-mar-17   34757947426
AN17    06-mar-17   18546884324
(I need an average here, that excludes number from March 1st)
AN16    26-feb-16   56450549777
AN16    27-feb-16   51285706203
AN16    28-feb-16   37384621464
AN16    29-feb-16   28992655707
AN16    01-mar-16   21979700006
AN16    02-mar-16   27826026350
(I need an average here, that excludes number from February 26th)

有人可以帮忙吗?

谢谢和最诚挚的问候!

1 个答案:

答案 0 :(得分:4)

如果您有Office 365 Excel订阅,请在D1中使用此公式:

=IF(A1<>A2,AVERAGEIFS(C:C,A:A,A1,B:B,">" & MINIFS(B:B,A:A,A1)),"")

复制下来:

enter image description here

如果您无权访问Office 365,请改为使用此公式:

=IF(A1<>A2,AVERAGEIFS(C:C,A:A,A1,B:B,">" & AGGREGATE(15,6,$B$1:$B$12/($A$1:$A$12=A1),1)),"")

如果您使用的是2007或更早版本,则需要使用此数组公式:

=IF(A1<>A2,AVERAGEIFS(C:C,A:A,A1,B:B,">" & MIN(IF($A$1:$A$12=A1,$B$1:$B$12))),"")

作为数组公式,必须在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter确认。如果操作正确,那么Excel会将{}放在公式周围。