
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.
AVERAGEIFS extends that same idea to more realistic reporting questions, where one condition is rarely enough. It is useful when the workbook needs the typical value for a slice defined by several rules at once, such as one team in one month with one status.
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 example shows the main idea behind AVERAGEIFS: one row has to pass more than one test before it is included. A row counts only if the department is Sales and the region is North at the same time.
Once Excel finds those rows, it averages only their values from the numeric column. That makes the result much more specific than a normal average or even an AVERAGEIF with just one rule.
=AVERAGEIFS(C1:C10,A1:A10,"Sales",B1:B10,"North") // Averages rows that match both conditions.
Average the salaries where Dept is Sales and Region is North.
Here one condition checks whether the row is recent enough, and the other checks whether the value is large enough. This is a good example of how AVERAGEIFS can combine time-based filtering with a numeric threshold.
The important part is that both rules are tested on the same row. If a row is recent but not above 1000, or above 1000 but too old, it does not get included in the average.
=AVERAGEIFS(B1:B10,A1:A10,">1/1/2026",B1:B10,">1000") // Averages recent values above 1000.
Average the recent sales that are above the threshold.
This example mixes a wildcard text rule with a status rule. The wildcard allows Excel to include labels like North East and North West, while the second rule keeps only rows that are Active.
That combination makes the average more meaningful because it focuses on one region pattern and one business condition at the same time. It is a common way to narrow a report without building extra helper columns.
=AVERAGEIFS(C1:C10,A1:A10,"North*",B1:B10,"Active") // Averages active rows that start with North.
Average the North rows that are also Active.
In this version, the conditions are stored in cells instead of being typed inside the formula. That makes the report easier to reuse because someone can change the selected department or region without touching the formula itself.
This is a practical dashboard pattern. The logic stays the same, but the answer updates as soon as the filter cells change.
=AVERAGEIFS(C1:C10,A1:A10,D1,B1:B10,D2) // Uses D1 and D2 as the conditions.
Average the rows that match the criteria cells.
AVERAGEIFS is for times when one rule is not enough. In this lesson, the examples used more than one filter at the same time, such as department and region, date and amount, or text match and status.
The main thing to remember is that every rule must match on the same row. Start with the numbers you want to average, then add the rule pairs that filter the rows.
average_range, then add range and criteria pairs.#DIV/0!.Tell your friends about this post