自动计算特定日期的最低和最高温度

Automate MIN and MAX temperatures for a certain date

我在 Excel 中有大量数据(6 万行),与此类似:

Temperature Humidity    Date
20.1        68      22-dec-14
20.3        67      22-dec-14
20.4        65      22-dec-14
20.0        64      23-dec-14
20.5        64      23-dec-14
20.9        65      24-dec-14
21.4        64      24-dec-14
23.4        64      25-dec-14
23.8        65      25-dec-14
23.9        64      25-dec-14
18.4        64      25-dec-14

我在此 table 之外创建了包含各个日期的新列,我想提取该日期的最大值、最小值,可能还有平均值

DATE      MIN   MAX  AVG
22/Dez/14
23/Dez/14
24/Dez/14
25/Dez/14

我试过了,但我似乎找不到让 Excel 为我工作的方法。你能帮帮我吗?

我建议你试试数据透视表:

假设 A 列包含日期,B 列包含值。我允许每行 6 行;根据需要扩展。

考虑 $D$1 中的示例日期。您需要的公式是:

  1. 最小值:=MIN(IF(D1=A1:A6,B1:B6,MAX(B1:B6)))。 (您需要将其作为 数组 公式输入)。

  2. 最大值:=MAX(IF(D1=A1:A6,B1:B6,MIN(B1:B6)))。 (您需要将其作为 数组 公式输入)。

  3. 开箱即用 AVERAGEIF

请记住,您需要按 Ctrl + Shift + Return 才能输入 数组 公式。然后是向下复制该公式的简单情况。

它们 return 如果给定日期不在集合中,则它们是整个样本的最小值或最大值,这可能是不可取的。您可以使用 IF.

调整此行为

您可以处理 pseudo-MIN/MAX,AGGREGATE¹ function using the 14 (LARGE) and 15 (SMALL) sub-functions together with the 6 (ignore errors) option and the AVERAGEIF function 可以处理其余的。

F2:H2中的标准公式是,

=AGGREGATE(15, 6, ($A:$A000)/($C:$C000=$E2), 1)
=AGGREGATE(14, 6, ($A:$A000)/($C:$C000=$E2), 1)
=AVERAGEIF($C:$C000, $E2, $A:$A000)

根据需要填写。这种方法的一个优点是,您可以通过提高 1 (k ordinal) 数字来获得第二、第三等最小或最大的数字AGGREGATE 公式的右端。


¹ AGGREGATE function 是在 Excel 2010 中引入的。它在早期版本中不可用。