在Excel中,在一天中的某个时间周围排除数据的平均值

我有一个小时的测量数据一整年。 时间戳在A列

我试图find一个简单的方法来平均数据,通过排除在6,7和上午8点的所有点。 但是,由于这些点在数据中popup了365次,所以我在应用像averageif等函数时遇到了问题。

有没有另外一种方法来做到这一点?

以下是两列的示例,第一列中的时间戳和第二列中的数据。

10/25/13 0:00 186.7583777 10/25/13 1:00 181.5850511 10/25/13 2:00 182.5474936 10/25/13 3:00 182.7110036 10/25/13 4:00 182.9423479 10/25/13 5:00 183.4864833 10/25/13 6:00 182.4676709 10/25/13 7:00 181.2562128 10/25/13 8:00 183.1540795 

你可以用一个数组公式来实现,但是我可能把这个公式放在列C: =if(or(hour(A:A)<6,hour(A:A)>8),B:B,"")将该公式一直向下拖动,然后将此公式放入单元格D1 =average(C:C)如果您想查看其他时间,只需更改C列中的公式即可。

尝试这个:

 =SUMPRODUCT((HOUR(A1:A8784)<>6)*(HOUR(A1:A8784)<>7)*(HOUR(A1:A8784)<>8)*B1:B8784)/SUMPRODUCT((HOUR(A1:A8784)<>6)*(HOUR(A1:A8784)<>7)*(HOUR(A1:A8784)<>8)*(B1:B8784<>"")) 

参考范围是自366天以来有8784小时; 如果数据不在A1中开始,您可能需要更改它们; 或者如果你在一个专栏中平均超过一年。

像这样的数组公式也是可行的

=AVERAGE(IF((HOUR(A2:A1000)<6)+(HOUR(A2:A1000)>8),IF(A2:A1000<>"",B2:B1000)))

CTRL + SHIFT + ENTER

根据需要调整范围,但最好不要在此公式中使用整列