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

问题描述 投票:1回答:2

在''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''我需要计算每天avgminmax13: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时。我想在“13:00”与vlookup (day&hour;...)但是这给出了一个错误,对于minmax可能与smalllarge

excel
2个回答
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
投票

您可以使用此公式更轻松地完成平均值

=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确认

虽然用后者限制范围更好

© www.soinside.com 2019 - 2024. All rights reserved.