按特定date时间关联值的平均列

我有一个列的时间格式为“dd / mm / yyyy hh:mm”,另一个是那个时间点的温度。 我期待分别计算每个月的昼夜平均温度。 5月的平均温度在06:00到18:00之间,五月的温度在18:00到06:00之间,三月份的温度也是如此。

Time Celsius(C) 06/05/2016 10:49 28 06/05/2016 11:49 29 06/05/2016 12:49 31 06/05/2016 13:49 27.5 06/05/2016 14:49 24 06/05/2016 15:49 25 06/05/2016 16:49 24.5 06/05/2016 17:49 23.5 06/05/2016 18:49 23 06/05/2016 19:49 22.5 06/05/2016 20:49 22.5 

我目前使用下面的公式:

 =AVERAGEIFS(C2:C3643,B2:B3643,">=01/05/2016",B2:B3643,"<=31/05/2016",B2:B3643,">=01/05/2016 06:00",B2:B3643,"<=31/05/2016 18:00") 

如果date是在五月和一天之内,尝试计算一个平均数 – 但是它似乎没有工作,当我改变小时期时,它仍然吐出相同的数字(这是一个月的平均数)。

你可以使用一个长的SUMPRODUCT公式:

五月份的600到1800:

 =SUMPRODUCT(($A$2:$A$12>=DATE(2016,5,1))*($A$2:$A$12<=DATE(2016,5,31))*(MOD($A$2:$A$12,1)>=TIME(6,0,0))*(MOD($A$2:$A$12,1)<=TIME(18,0,0))*B2:B12)/SUMPRODUCT(($A$2:$A$12>=DATE(2016,5,1))*($A$2:$A$12<=DATE(2016,5,31))*(MOD($A$2:$A$12,1)>=TIME(6,0,0))*(MOD($A$2:$A$12,1)<=TIME(18,0,0))) 

您始终可以用单元格引用replace所有的DATE()和TIME()部分,而不是对它们进行硬编码。

在这里输入图像说明

为了得到1800到600之间的值,我们需要把它移到一个OR在布尔时间之间的+ ,而不是*

 =SUMPRODUCT(($A$2:$A$12>=DATE(2016,5,1))*($A$2:$A$12<=DATE(2016,5,31))*((MOD($A$2:$A$12,1)<=TIME(6,0,0))+(MOD($A$2:$A$12,1)>=TIME(18,0,0)))*B2:B12)/SUMPRODUCT(($A$2:$A$12>=DATE(2016,5,1))*($A$2:$A$12<=DATE(2016,5,31))*((MOD($A$2:$A$12,1)<=TIME(6,0,0))+(MOD($A$2:$A$12,1)>=TIME(18,0,0)))) 

在这里输入图像说明

这依赖于你创build一个如下所示的月份和时间范围表:

在这里输入图像说明

在E2中input该公式并根据需要拖动。 这是一个数组公式,所以必须用CtrlShiftEnterinput

 =AVERAGE(IF( ((MONTH($A$2:$A$101)=MONTH(E$1&1))* ((MOD(HOUR($A$2:$A$101)-LEFT($D2,2),24))>=0)* ((MOD(HOUR($A$2:$A$101)-LEFT($D2,2),24))<12)), $B$2:$B$101)) 

笔记:

  • MONTH(E$1&1)部分可让您从“Jan”
  • 我使用MOD和时间范围左边的减法得到目标小时,范围从0到23.这使得可以过滤1到11之间的值。
  • 如果Barry Houdini还在身边,他肯定能在一半的空间里完成。

在使用date时间的情况下,如果在第二天的18小时到6小时之间的实际date被计入午夜时间,我发现将时间抵消并进行计算是有用的。

6:00至18:00 =平均(如果((月($ A $ 2:$ A $ 12-0.25)= D2)*(MOD($ A $ 2:$ A $ 12-0.25,1)<0.5),$ B $ 2:$ B $ 12 “”))

18:00至6:00 =平均(如果((月($ A $ 2:$ A $ 12-0.25)= D2)*(MOD($ A $ 2:$ A $ 12-0.25,1)> = 0.5),$ B $ 2:$ B $ 12 “”))

这些是使用Ctrl-Shift-Enterinput的数组公式。

在这里,我将时间减去0.25天,即6小时。

在这里输入图像说明