2012-07-17 136 views
1

我在Excel中有一个列表,基本上有两列:DateValue如何在Excel中做一个动态范围的平均值? (VBA?)

Col A  |Col B |Col C|Col D  |Col E 
----------+------+-----+----------+----- 
Date  |Value |  |Date-range| 
2012/01/01| 10|  |2012/01/01| 8.33 
2012/01/05|  5|  |2012/01/07| 
2012/01/07| 10|  |   | 
2012/01/13|  1|  |   | 

我想返回两个日期,我将设置在两个单独的单元格之间的平均值。那可能吗?

所以,让我们说在细胞D1我把“2012/01/01”,并在细胞D2我把“2012/01/07”。它应该返回在该日期范围内的值的平均值,在这种情况下(10 + 5 + 10)/ 3 = 8.33

我能够返回两个日期的单元格(例如C100),但我没有知道如何将它们包括在平均范围内。还是有更聪明的方法来做到这一点?

+0

请插入'code'块到你的问题,给出一些样本数据。例如,日期是按单列列出的? “这两个日期返回单元(C100)”是什么意思? – 2012-07-17 23:52:34

+0

相应地更新了它。通过“返回单元格(C100)的两个日期”我的意思是 - 在这种情况下 - 有一个公式(vlookup)来查找设置日期引用的单元格 - A1和A3 - 也许它有帮助 – user1507035 2012-07-18 00:13:42

回答

0

由于您拥有Excel 2007,因此您可以使用AVERAGEIFS。对于你的情况

=AVERAGEIFS(B1:B10,A1:A10,">="&D1,A1:A10,"<="&D2)

其中D1是你的最小日期,D2的最大日期和A1:B10包含您的日期和值范围将返回8.33

+0

嗯,如果我做正是这个它返回一个**#Value!**错误 – user1507035 2012-07-18 00:31:01