
Calculate the average of values that meet more than one condition. Useful when one filter is not enough.
AVERAGEIFS returns the average of values that meet multiple conditions. It works like a more specific version of AVERAGEIF, so instead of checking one rule, you can stack several rules together in the same formula.
This matters when one filter is too broad. You might not want the average for all Sales rows. You might want the average for Sales rows in the North region, or the average for orders after a certain date that are also above a certain amount. That is the kind of job AVERAGEIFS is built for.
Returns the mean only for rows that pass every condition.
Returns the average of matching values. If no rows match all conditions, Excel returns #DIV/0!.
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
The first argument is always the range of numbers you want to average. After that, each condition is written as a pair: one criteria range and one criteria value.
The easiest way to choose between these functions is to count how many rules you need.
| Function | Main job | Use it when |
|---|---|---|
AVERAGEIFS |
Average with many conditions | You need two or more rules |
AVERAGEIF |
Average with one condition | You only need one rule |
AVERAGE |
Average everything | You want the mean of the full list |
SUMIFS |
Sum with many conditions | You want a total instead of an average |
The key idea is that every condition must match on the same row. If you ask for rows where the department is Sales and the region is North, Excel only averages the values from rows that satisfy both of those checks together. A row that matches one condition but not the other is left out.
The most common mistake is argument order. AVERAGEIFS starts with the numbers you want to average, not the first criteria range. That is different from AVERAGEIF, so it is worth slowing down and checking the first argument whenever a formula does not behave the way you expect.
Criteria can use text, operators, wildcards, and cell references. That means you can combine rules like "Sales", "North*", ">1000", or D1 in the same formula. In practice, using cell references often makes the formula easier to reuse because the report can change without rewriting the formula itself.
This is the basic multi-condition pattern. The value is averaged only when both the department and region match.
=AVERAGEIFS(C1:C10,A1:A10,"Sales",B1:B10,"North") // Averages rows that match both conditions.
Average the salaries in C1:C10 where Dept is "Sales" and Region is "North". Formula: =AVERAGEIFS(C1:C10,A1:A10,"Sales",B1:B10,"North").
Here one rule checks the date and the other checks the amount. Both filters must be true for the row to count.
=AVERAGEIFS(B1:B10,A1:A10,">1/1/2026",B1:B10,">1000") // Averages recent values above 1000.
Average sales in B1:B10 for dates after 1/1/2026 and amounts greater than 1000. Formula: =AVERAGEIFS(B1:B10,A1:A10,">1/1/2026",B1:B10,">1000").
You can combine a wildcard text match with another text condition to narrow the result without creating helper columns.
=AVERAGEIFS(C1:C10,A1:A10,"North*",B1:B10,"Active") // Averages active rows that start with North.
Average scores for regions starting with "North" that also have "Active" status. Formula: =AVERAGEIFS(C1:C10,A1:A10,"North*",B1:B10,"Active").
This version is easier to maintain in a report because the criteria live in cells instead of inside the formula text.
=AVERAGEIFS(C1:C10,A1:A10,D1,B1:B10,D2) // Uses D1 and D2 as the conditions.
Average values using the Dept in D1 and Region in D2. Formula: =AVERAGEIFS(C1:C10,A1:A10,D1,B1:B10,D2).
average_range, then add range and criteria pairs.#DIV/0!.Tell your friends about this post