在'' Sheet1''我有每小时的温度值,看起来像这样:
Time Value
1.1.2017 0:00:00 -5
1.1.2017 1:00:00 -5
1.1.2017 2:00:00 -6
1.1.2017 3:00:00 -7
1.1.2017 4:00:00 -7
直到今年年底。
在'' Sheet2''我需要计算avg
,min
,max
以及每天13:00
小时,因此需要看起来像这样:
Day Avg Min Max 13:00
01.01.2017
02.01.2017
03.01.2017
04.01.2017
所以我设法为AVG获得了它:
Avg = AVERAGEIFS(Sheet1!B;Sheet1!A;">="&DATE(YEAR(Sheet2!A2);MONTH(Sheet2!A2);DAY(Sheet2!A2));Sheet1!A;"<"&DATE(YEAR(Sheet2!A3);MONTH(Sheet2!A3);DAY(Sheet2!A3)))
但我需要min
,max
,尤其是13:00
小时的帮助。
我在&#34; 13:00&#34;使用vlookup (day&hour;...)
但是会出错,min
和max
可能包含small
和large
。
答案 0 :(得分:2)
您可以使用如下的数组公式:
=AVERAGE(IF(INT(Sheet1!$A$2:$A$1000)=A2;Sheet1!$B$2:$B$1000))
=min(IF(INT(Sheet1!$A$2:$A$1000)=A2;Sheet1!$B$2:$B$1000))
=max(IF(INT(Sheet1!$A$2:$A$1000)=A2;Sheet1!$B$2:$B$1000))
并在13:00查找值
=INDEX(Sheet1!B:B;MATCH(A4+TIME(13;0;1);Sheet1!A:A;1))
前三个公式是数组公式,必须使用Ctrl-Shift-Enter确认。您不应该将它们与整列引用一起使用,因为这会降低您的工作簿速度。
更好的方法是将日期和时间分成两个不同的列。然后你可以使用超快的AverageIfs,MaxIfs和MinIfs,它们可以与整列一起使用而没有问题。
A栏中的日期,B栏中的时间,C栏中的值
=AVERAGEIFS(Sheet1!C:C;Sheet1!A:A;A2)
=MINIFS(Sheet1!C:C;Sheet1!A:A;A2)
=MAXIFS(Sheet1!C:C;Sheet1!A:A;A2)
值1300小时
=SUMIFS(Sheet1!C:C;Sheet1!A:A;A2;Sheet1!B:B;">"&TIME(12;59;59),Sheet1!B:B;"<="&TIME(13;0;1))
时间值查找有点复杂,因为完全匹配将是0.54166666666666,末尾有无限数量的6。一旦你绕过最后的6到7,就没有完全匹配了。因此,公式会查找时间范围在12:59:59到13:00:01之间的时间。
在看到barryhoudini的帖子后进行编辑:对于较新版本的Excel,您应该能够将这些非数组公式与原始布局一起使用,因此如果您使用Barry对AverageIfs的建议,则根本不需要数组公式
=MAXIFS(Sheet1!B:B,Sheet1!A:A,">="&A2,Sheet1!A:A,"<="&A2+1)
=MINIFS(Sheet1!B:B,Sheet1!A:A,">="&A2,Sheet1!A:A,"<="&A2+1)
答案 1 :(得分:1)
使用此公式可以更轻松地完成平均值
=AVERAGEIFS(Sheet1!B:B;Sheet1!A:A;">="&A2;Sheet1!A:A;"<"&A2+1)
对于MIN
和MAX
,您可以使用像这样的数组公式
=MIN(IF(Sheet1!A:A>=A2;IF(Sheet1!A:A< A2+1;Sheet1!B:B)))
使用 CTRL + SHIFT + ENTER确认
虽然最好用后者来限制范围