Средняя дневная и ночная температура в Excel
У меня есть большой набор данных о температуре и влажности, которые собираются каждые полчаса в течение года. Я бы хотел получить среднюю дневную и ночную температуру, но мои эксперименты со средними значениями пока не увенчались успехом. Это насколько я понял.
=AVERAGEIFS(Sheet1!D$7:D$17622,Sheet1!$C$7:$C$17622, ">="&$A21, Sheet1!$C$7:$C$17622,"<" &$A22)
Значения в A21 и A22: 6:00 и 18:00, отформатированные как ч: мм.
Это просто возвращает DIV/0! ошибка - у меня нет нулей, поэтому я не знаю, в чем проблема.
У меня точно такая же формула, работающая с датами. Обе формулы опираются на один и тот же вход, введенный в каждую ячейку следующим образом:
1/02/2016 3:00:00 PM
Я был бы очень признателен за любую помощь (или, если это неправильный форум, дайте мне знать).
2 ответа
Ваши проблемы - размер диапазонов, которые вы указываете.
Из документации:
Синтаксис:
AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2],...)
AVERAGEIFS
Синтаксис функции имеет следующие аргументы:
Average_range
Требуется Одна или несколько ячеек для усреднения, включая числа или имена, массивы или ссылки, содержащие числа.
Criteria_range1, criteria_range2, …
Criteria_range1 является обязательным, последующие crit__ranges являются необязательными. От 1 до 127 диапазонов, в которых оцениваются соответствующие критерии.
Criteria1, criteria2, …
Критерии1 обязательны, последующие критерии необязательны. От 1 до 127 критериев в виде числа, выражения, ссылки на ячейку или текста, которые определяют, какие ячейки будут усреднены. Например, критерии могут быть выражены как32
,"32"
,">32"
, "apples"
, или жеB4
,В отличие от аргументов диапазона и критериев в
AVERAGEIF
функция, вAVERAGEIFS
каждый критерий_рассылки должен быть того же размера и формы, что и сумма_диапазона.
Итак, с AVERAGEIFS
, SUMIFS
, COUNTIFS
, если диапазон для вычисления (первый параметр), например, A1: A10
, тогда все указанные вами критерии также должны охватывать 10 ячеек.
Вы можете неправильно использовать AVERAGEIFS
вместо AVERAGEIF
,
Если у вас есть одна строка критериев и вы хотите усреднить одну или несколько строк данных, используйте
AVERAGEIF
,Если у вас есть несколько критериев (т. Е. До и после этого времени) и вы хотите усреднить одну строку данных, используйте
AVERAGEIFS
,
Я не верю, что вы можете использовать любой из нескольких критериев + несколько строк данных. Если это то, что вы пытаетесь сделать, вам может понадобиться SUMIFS
а также COUNTIFS
для каждой строки, а затем рассчитать среднее из тех.
Например:
Если вы хотите среднюю дневную температуру (с 06:00 до 18:00)
времена хранятся в
A1:X1
лайк00:00
в23:00
(* и к ним не привязаны даты, даже если они не "видны")температуры хранятся в столбцах
A:X
(один день в ряду)и вы хотите рассчитать среднюю дневную температуру за один день, которая хранится в строке 2,
... тогда вы можете использовать:
=AVERAGEIFS(A2:X2,A1:X1,">="&6/24,A1:X1,"<&18/24)
Обратите внимание, что при подсчете итогов на основе даты / времени начала / окончания обычно лучше использовать:
>=
Дата / время начала, и,<
Дата / время окончания
... для предотвращения совпадений.
Кроме того, при переходе к более сложным формулам, подобным этому, обязательно вручную рассчитайте несколько строк, чтобы сравнить и убедиться, что вы правильно указали критерии формулы.
Дополнительная информация:
Office.com: функция AVERAGEIFS
Office.com: функция AVERAGEIF
Office.com: функция SUMIFS
Office.com: функция COUNTIFS
Exceltip.com: функции AVERAGEIFS, SUMIFS и COUNTIFS в Microsoft Excel
Одна проблема, которая не была решена, заключалась в том, как получить средние значения за ночь (день работал нормально). Я также хотел получить средние значения для каждого сезона. Вот как я это исправил с помощью формулы массива:
=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))))
На листе 1 столбец C - время, столбец B - дата / время, а D - температура.
А: А31 = 18:00, А32 = 6:00 (Ночное время).
B31 = 03.01.2016 B32 = 06.01.2016 (пример диапазона для сезона)