【问题标题】:Average day and night temperature in excelexcel中昼夜平均温度
【发布时间】:2018-08-15 07:41:16
【问题描述】:

我有一个大型的温度和湿度读数数据集,一年内每半小时收集一次。我想获得昼夜温度的平均值,但我的平均实验到目前为止都失败了。这是我得到的。

=AVERAGEIFS(Sheet1!D$7:D$17622,Sheet1!$C$7:$C$17622, ">="&$A21, Sheet1!$C$7:$C$17622,"<" &$A22)

A21 和 A22 中的值为 6:00 和 18:00,格式为 h:mm。

这只是返回一个 DIV/0!错误 - 我没有任何零,所以我不知道问题是什么。

我有完全相同的公式处理日期。两个公式都在相同的输入上绘制,像这样输入到每个单元格中:

1/02/2016  3:00:00 PM

我将非常感谢任何帮助(或者如果这是错误的论坛,请告诉我)。

【问题讨论】:

  • ...奇怪,上周我只是做了同样的事情,最终目标是计算预测与实际天气数据的准确性,使用 Excel 的 CORREL 函数。 (...这不是 Dave,是吗?哈哈)
  • 我不太清楚您是在单个单元格中输入了日期时间,还是在 3 个单独的单元格中输入了日期、时间和上午/下午?
  • 它们都在一个单元格中(这就是我的记录器制作文件的方式)。不,这不是戴夫……

标签: excel date time excel-formula formula


【解决方案1】:

您的问题是您指定的范围的大小。

来自documentation

语法:

AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2],...)

AVERAGEIFS 函数语法具有以下参数:

Average_range必填。要平均的一个或多个单元格,包括数字或名称、数组或包含数字的引用。

Criteria_range1, criteria_range2, … Criteria_range1 是必需的,后续的criteria_ranges 是可选的。评估相关标准的 1 到 127 个范围。

Criteria1, criteria2, … Criteria1 是必需的,后续的条件是可选的。 1 到 127 个标准,以数字、表达式、单元格引用或文本的形式定义哪些单元格将被平均。例如,标准可以表示为32"32""&gt;32"、“apples"”或B4

AVERAGEIF 函数中的范围和条件参数不同,AVERAGEIFS 中的每个条件范围必须与 sum_range 的大小和形状相同

所以,对于AVERAGEIFSSUMIFSCOUNTIFS,如果要计算的范围(第一个参数)是例如 A1:A10,那么 所有 条件您指定的范围也必须跨越 10 个单元格。


您可能错误地使用了AVERAGEIFS 而不是AVERAGEIF

  • 如果您有单行条件并且想要平均一行或多行数据,请使用AVERAGEIF

  • 如果您有多个条件(即,在此时间之前和之后)并且想要平均一行数据,请使用AVERAGEIFS

我不相信您可以将任何一个用于多个条件 + 多个数据行。如果这是您想要做的,您可能需要对每一行使用SUMIFSCOUNTIFS,然后从中计算平均值。


例如:

  • 如果您想要平均白天温度(06:00 到 18:00 之间)

  • 时间存储在 A1:X1 中,例如 00:0023:00(*并且附有日期,即使不“可见”)

  • 温度存储在 A:X 列中(每行一天)

  • 你想计算一天的平均白天温度,它存储在第 2 行,

...那么您可以使用:

=AVERAGEIFS(A2:X2,A1:X1,">="&6/24,A1:X1,"<&18/24)

请注意,在根据开始/结束日期/时间进行总计时,通常最好使用:

  • &gt;= 开始日期/时间,以及,

  • &lt; 结束日期/时间

...防止重叠

此外,当涉及到更复杂的公式时,请务必手动计算几行来比较并验证您是否正确指定了公式标准。


更多信息:

【讨论】:

  • 非常感谢 - 您提到了问题,即条件与日期和时间的单元格不匹配。我使用 =TIME(HOUR(A1),MINUTE(A1), SECOND(A1)) 来提取时间并且效果很好。
【解决方案2】:

没有解决的一个问题是如何获得夜间平均值(白天工作正常)。我还想要每个赛季的平均值。以下是我使用数组公式解决此问题的方法:

=AVERAGE(IF((Sheet1!C$7:C$17622>=A$31)+(Sheet1!C$7:C$17622<A$32),IF(Sheet1!$B$7:$B$17622 >=$B31, IF(Sheet1!$B$7:$B$17622<$B32,Sheet1!D$7:D$17622))))

在 Sheet1 中,C 列是时间,B 列是日期/时间,D 是温度。

并且: A31 = 18:00 A32 = 6:00(夜间)

B31 = 1/03/2016 B32 = 1/06/2016(季节范围示例)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    相关资源
    最近更新 更多