自动化特定日期的MIN和MAX温度

时间:2015-10-23 06:50:17

标签: excel excel-formula pivot-table worksheet-function array-formulas

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

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

我在此表格外创建了包含各个日期的新列,我想提取MAX,MIN以及该日期的AVERAGE

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

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

3 个答案:

答案 0 :(得分:2)

我建议您尝试数据透视表:

SO33296377 example

答案 1 :(得分:1)

假设列A包含日期,列B包含值。我允许每行6行;必要时延长。

考虑$ D $ 1的样本日期。你需要的公式是:

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

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

  3. 开箱即用AVERAGEIF

  4. 请记住,您需要按Ctrl + Shift + Return键才能输入数组公式。然后,这是一个向下复制该公式的简单案例。

    如果集合中不存在给定日期,则返回整个样本的最小值或最大值,这可能是不可取的。您可以使用包含IF

    的方式调整此行为

答案 2 :(得分:1)

您可以使用 14 AGGREGATE¹ function)和 15 ({{LARGE使用SMALL来处理伪MIN / MAX 3}})子功能与 6 忽略错误)选项一起使用,AVERAGEIF function可以处理其余部分。

MINIF, MAXIF, AVERAGEIF

F2:H2中的标准公式是

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

根据需要填写。这种方法的一个优点是只需在AGGREGATE的右端提高 1 k ordinal )数字就可以获得第二个,第三个等最小或最大值。式。

¹ Excel 2010引入了AGGREGATE function。早期版本不提供。