Excel - 平均,最小,最大和每天13:00

时间:2017-12-20 07:34:33

标签: excel

在'' 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''我需要计算avgminmax以及每天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)))

但我需要minmax,尤其是13:00小时的帮助。 我在&#34; 13:00&#34;使用vlookup (day&hour;...)但是会​​出错,minmax可能包含smalllarge

2 个答案:

答案 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)

对于MINMAX,您可以使用像这样的数组公式

=MIN(IF(Sheet1!A:A>=A2;IF(Sheet1!A:A< A2+1;Sheet1!B:B)))

使用 CTRL + SHIFT + ENTER确认

虽然最好用后者来限制范围