I have a large dataset of temperature and humidity readings, collected every half hour for a year. I’d like to get an average of day and night temperature, but my experiments with averageifs have so far failed. This is as far as I got.
=AVERAGEIFS(Sheet1!D$7:D$17622,Sheet1!$C$7:$C$17622, ">="&$A21, Sheet1!$C$7:$C$17622,"<" &$A22)
The values in A21 and A22 are 6:00 and 18:00, formatted as h:mm.
This just returns a DIV/0! error – I don’t have any zeros, so I don’t know what the issue is.
I have exactly the same formula working with dates. Both formulas are drawing on the same input, entered into each cell like so:
1/02/2016 3:00:00 PM
I would be most grateful for any assistance (or if this is the wrong forum, let me know).
Your problems is the size of the ranges you are specifying.
_{From the documentation:}
Syntax:
AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2],...)
The
AVERAGEIFS
function syntax has the following arguments:
Average_range
Required. One or more cells to average, including numbers or names, arrays, or references that contain numbers.
Criteria_range1, criteria_range2, …
Criteria_range1 is required, subsequent criteria_ranges are optional. 1 to 127 ranges in which to evaluate the associated criteria.
Criteria1, criteria2, …
Criteria1 is required, subsequent criteria are optional. 1 to 127 criteria in the form of a number, expression, cell reference, or text that define which cells will be averaged. For example, criteria can be expressed as32
,"32"
,">32"
, “apples"
, orB4
.Unlike the range and criteria arguments in the
AVERAGEIF
function, inAVERAGEIFS
each criteria_range must be the same size and shape as sum_range.
So, with AVERAGEIFS
, SUMIFS
, COUNTIFS
, if the range to calculate (the fist paramater) is, for example, A1:A10
, then all of criteria ranges that you specify also have to span 10 cells.
You may be incorrectly using AVERAGEIFS
instead of AVERAGEIF
.

If you have a single row of criteria and want to average one or more rows of data , use
AVERAGEIF
. 
If you have multiple criteria (ie., before this time and after that time) and want to average one row of data, use
AVERAGEIFS
.
I don’t believe you can use either for multiple criteria + multiple data rows. If that’s what you’re trying to do, you may need to use SUMIFS
and COUNTIFS
for each row and then calculate an average from those.
For example:

If you want to average daytime temperatures (between 06:00 and 18:00)

times are stored in
A1:X1
like00:00
to23:00
(*and do not have dates attached to them, even if not ‘visible’) 
temperatures are stored in columns
A:X
(one day per row) 
and you want to calculate average daytime temperatures, for one day, which is stored on Row 2,
… then you could use:
=AVERAGEIFS(A2:X2,A1:X1,">="&6/24,A1:X1,"<&18/24)
Note that when taking totals based on start/end dates/times, it’s generally best to use:

>=
the Start date/time, and, 
<
the End date/time
…to prevents overlaps.
Also, when getting into more complex formulas like this, be sure to manually calculate a few rows to compare and verify that you’ve correctly specified the formula criteria.
More Information:

Office.com : AVERAGEIFS function

Office.com : AVERAGEIF function

Office.com : SUMIFS function

Office.com : COUNTIFS function

Exceltip.com : AVERAGEIFS, SUMIFS and COUNTIFS Functions in Microsoft Excel
Answer：
One problem that wasn’t solved was how to get night averages (day worked fine). I was also wanting the averages for each season. Here’s how I fixed that with an array formula:
=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))))
In Sheet1, column C is Time, Column B is Date/time, and D is temperature.
And:
A31 = 18:00 A32 = 6:00 (Night time)
B31 = 1/03/2016 B32 = 1/06/2016 (example range for season)
Tags: date, excelexcel