Calculates the average of cells in a range that meet multiple criteria. More powerful than AVERAGEIF for complex conditional averaging.
Master the fundamentals of Excel AVERAGEIFS function
AVERAGEIFS is the enhanced version of AVERAGEIF, supporting multiple AND conditions. It calculates the average of cells that meet ALL specified criteria simultaneously. Perfect for complex filtering scenarios where you need to average data based on several conditions across different ranges.
Supports up to 127 criteria pairs
All criteria must be satisfied
Same operators as AVERAGEIF
Must specify range to average
Function-specific parameters
Function-specific return type
Average by multiple dimensions
Average by segments
Average in date ranges
Complex conditional averages
Exact matching required
Returns numeric position
Handles missing text gracefully
=AVERAGEIFS(average_range, criteria_range1, criteria1, criteria_range2, criteria2, ...)Range of cells to average
First range to evaluate with criteria
First criterion to apply
Additional ranges and criteria (up to 127 pairs)
Average of cells meeting all criteria
Description: Calculates average for cells meeting multiple criteria
Average with 2 conditions
Returns average meeting both criteria
Simple VBA implementation
' Basic AVERAGEIFS in VBA
Sub AVERAGEIFSExample()
Dim result As Variant
result = Application.WorksheetFunction.AverageIfs(Range("C1:C100"), _
Range("A1:A100"), "North", Range("B1:B100"), 2023)
MsgBox "Average: " & result
End Sub
' Dynamic criteria
Sub AverageByMultipleCriteria()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim avgRange As Range
Dim crit1Range As Range
Dim crit2Range As Range
Set avgRange = ws.Range("Sales")
Set crit1Range = ws.Range("Region")
Set crit2Range = ws.Range("Year")
ws.Range("Result").Value = Application.AverageIfs(avgRange, _
crit1Range, "North", crit2Range, 2023)
End Sub
' Complex report
Sub BuildComplexReport()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim regions() As String
Dim i As Integer
regions = Array("North", "South", "East", "West")
For i = 0 To UBound(regions)
ws.Cells(i + 1, 1).Value = regions(i)
ws.Cells(i + 1, 2).Value = Application.AverageIfs(ws.Range("Sales"), _
ws.Range("Region"), regions(i), ws.Range("Year"), 2023)
Next i
End SubAverage by segments
Average by multiple filters
Average by accounts and dates
Average by category and location
No cells meet all criteria
Ensure criteria ranges same sizeSolution: Verify all criteria are met, check range alignment
Odd number of arguments
Always pair criteria_range with criteriaSolution: Criteria must come in pairs (range, criteria)
Different range sizes
Check range sizes matchSolution: All ranges must have same dimensions
Need ANY instead of ALL
SUM multiple AVERAGEIF resultsSolution: Use multiple AVERAGEIF formulas and combine