Stop Using AVERAGE + IF — Try AVERAGEIFS Instead

The first thing most people do when they need an average of sales over $50,000 for the West region in Q2 is write {=AVERAGE(IF((B2:B100="West")*(C2:C100>50000),D2:D100))}. That’s a Ctrl+Shift+Enter array formula — fragile, slow, and impossible to audit. Worse: it breaks if someone presses Enter instead of Ctrl+Shift+Enter. You don’t need arrays. You need AVERAGEIFS.

Quick Answer

AVERAGEIFS calculates the arithmetic mean of cells that meet all specified criteria — and it’s non-array, fully dynamic, and reads left-to-right like plain English. Its syntax is AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...). Unlike AVERAGEIF, it supports up to 127 conditions — and yes, it handles dates, wildcards, and even cell references as criteria.

All the Methods

Method Steps Best For Limitations
AVERAGEIFS (native) 1. Select output cell
2. Type =AVERAGEIFS(D2:D12,B2:B12,"West",C2:C12,">50000")
3. Press Enter
Multi-criteria numeric averages (sales, scores, durations) All criteria ranges must be same height/width as average_range
FILTER + AVERAGE (365/2021) 1. Use =AVERAGE(FILTER(D2:D12,(B2:B12="West")*(C2:C12>50000)))
2. Press Enter
Dynamic arrays, complex logic (OR, nested conditions) Not available in Excel 2019 or earlier
SUMIFS / COUNTIFS combo 1. Calculate numerator: =SUMIFS(D2:D12,B2:B12,"West",C2:C12,">50000")
2. Denominator: =COUNTIFS(B2:B12,"West",C2:C12,">50000")
3. Divide them
Learning how AVERAGEIFS works under the hood More error-prone; #DIV/0! if no matches
PivotTable + Value Field Settings 1. Insert PivotTable
2. Drag Region to Filters, Amount to Values
3. Right-click value → Summarize Values By → Average
Exploratory analysis, ad-hoc slicing Static unless refreshed; can’t reference in formulas

Method 1 Deep Dive

Let’s walk through a realistic scenario. You manage regional sales data in Sheet1, rows 2–12:

A B C D
Name Region Sales Target ($) Actual Sales ($)
Sarah Chen West 65000 72400
Diego Morales East 42000 39800
Priya Kapoor West 58000 61200
Marcus Lee North 75000 68900
Anya Petrova West 51000 54300
Tariq Hassan South 48000 46100
Lena Schmidt West 62000 66500
James Wu East 55000 57200
Fatima Ndiaye West 49000 42800

We want the average of Actual Sales (column D) where Region = "West" AND Sales Target > 50,000. The formula goes in cell F2:

=AVERAGEIFS(D2:D12,B2:B12,"West",C2:C12,">50000")

It returns $63,600. That’s the average of Sarah ($72,400), Priya ($61,200), Anya ($54,300), and Lena ($66,500). Fatima is excluded because her target is $49,000. The beauty? You can replace "West" with G1 and ">50000" with H1 — then change G1/H1 and the result updates instantly. No recalc needed.

Surprising tip: You can use wildcards. Try =AVERAGEIFS(D2:D12,A2:A12,"S*",C2:C12,">=60000") to average actual sales for all names starting with “S” whose target is ≥$60,000. It matches only Sarah Chen — and returns $72,400.

Method 2 Deep Dive

What if you need either West or North — but not both? AVERAGEIFS doesn’t support OR logic natively. That’s where FILTER shines — and here’s the elegant workaround:

In cell F5, try this (Excel 365 or 2021 only):

=AVERAGE(FILTER(D2:D12,(B2:B12="West")+(B2:B12="North")))

Note the + (not *). In Boolean math, + means OR, * means AND. This formula evaluates to TRUE for rows where Region is West OR North — then AVERAGE takes the mean of those Actual Sales values: $72,400 (Sarah), $61,200 (Priya), $66,500 (Lena), and $68,900 (Marcus) = $67,250.

Keyboard shortcut pro move: To quickly select the entire data range before writing your formula, click any cell inside it (say, C5), then press Ctrl+A twice — the first selects the current region, the second expands to the full used range. Much faster than dragging.

You can also embed date logic cleanly. If column E contains hire dates (e.g., 2022-04-12, 2023-09-05), this gets average sales for West reps hired after Jan 1, 2023:

=AVERAGEIFS(D2:D12,B2:B12,"West",E2:E12,">="&DATE(2023,1,1))

No quotes around the DATE function — because we’re concatenating a string condition. That’s a nuance most miss.

Cheat Sheet

Task Formula Shortcut / Tip
Average West sales > $50k =AVERAGEIFS(D2:D12,B2:B12,"West",C2:C12,">50000") Use Alt+M+U+M to open Formula Auditing → Evaluate Formula
Average for names starting with “S” =AVERAGEIFS(D2:D12,A2:A12,"S*") Wildcards: * = any chars, ? = single char
Average West OR North =AVERAGE(FILTER(D2:D12,(B2:B12="West")+(B2:B12="North"))) Requires Excel 365/2021; + = OR, * = AND
Average with cell-based criteria =AVERAGEIFS(D2:D12,B2:B12,G1,C2:C12,">="&H1) Reference cells directly — no quotes around H1 if it holds a number
Exclude blanks in average_range =AVERAGEIFS(D2:D12,D2:D12,"<>") "<>" means “not equal to empty” — catches blank cells & zeros
Sarah Mitchell

Sarah Mitchell

Sarah has 12 years of experience covering Microsoft 365 productivity tools and enterprise software workflows. She specializes in Excel automation and SharePoint integration.