AVERAGEIFS Function in Google Sheets

If you want to average numbers that match more than one rule at once, use the AVERAGEIFS function in Google Sheets. You tell it which numbers to average, then list each criteria range paired with the rule that range must satisfy.

In this article, I’ll show you how to use AVERAGEIFS with two text criteria, a numeric range on a single column, a date range, and a wildcard match. I’ll also cover the AVERAGE plus FILTER pattern as a flexible alternative.

AVERAGEIFS Function Syntax in Google Sheets

The AVERAGEIFS function averages the values in a range that meet two or more conditions.

=AVERAGEIFS(average_range, criteria_range1, criterion1, [criteria_range2, criterion2, ...])
  • average_range is the range of numbers you want to average.
  • criteria_range1 is the first range you test against the first condition.
  • criterion1 is the rule that range must meet, like “East”, “>=100”, or “A*”.
  • criteria_range2, criterion2, … are optional extra pairs. You can add as many as you need.

This is the multi-criteria version of the AVERAGEIF function. Where AVERAGEIF handles one rule, AVERAGEIFS handles two or more at the same time.

When to Use AVERAGEIFS Function

  • Average values that match two or more text labels at once, like sales for one region and one status.
  • Average numbers that fall inside a range, like values between 100 and 500.
  • Average rows that fall inside a date window, like invoices from a specific month.
  • Combine a wildcard pattern with another text filter, like products starting with A and sold in the East.
  • Get a quick average when you need more flexibility than a single condition allows.

Example 1: Average With Two Text Criteria

Let’s start with the most common job, averaging rows that match two labels at once.

Below is the dataset. Column A has the region, column B has the deal status, and column C has the amount for each row.

Google Sheets dataset with Region, Status, and Amount columns for AVERAGEIFS tutorial.

I want the average amount for deals that are in the East region AND have a status of Closed.

Here is the formula:

=AVERAGEIFS(C2:C7, A2:A7, "East", B2:B7, "Closed")
Google Sheets AVERAGEIFS formula in formula bar, returning 200 in cell D2.

AVERAGEIFS walks through both criteria ranges in parallel. A row qualifies only when column A is “East” and column B is “Closed” on the same row.

Three rows match both rules, with values 200, 300, and 100, so the average is 200. The East row with Open status gets skipped, and so does the South row with Closed status.

Example 2: Average Numbers Inside a Range

You can apply two criteria to the same column to average values that fall inside a number range.

Below is the dataset. Column A has the item name and column B has the sales for each item.

Google Sheet with "Item" and "Sales" columns, showing Bolts (100) to Anchors (400).

I want the average of only the sales values between 100 and 500, inclusive.

Here is the formula:

=AVERAGEIFS(B2:B7, B2:B7, ">=100", B2:B7, "<=500")
AVERAGEIFS formula in Google Sheets C2 averages sales from 100 to 500.

The same range B2:B7 shows up three times here. Once as the values to average, and twice more for the two conditions. AVERAGEIFS keeps the rows where both the lower and upper bounds are met.

Bolts at 100, Nuts at 200, Washers at 300, and Anchors at 400 all qualify, so the average comes out to 250. Screws at 600 is too high. Nails at 50 is too low. Both get left out.

Pro Tip: The comparison operator and the number always go together inside one set of double quotes, like “>=100” or “<=500". Splitting them or dropping the quotes will break the formula.

Example 3: Average Inside a Date Range

You can use the same two-bound pattern on a date column to average rows from a specific window.

Below is the dataset. Column A has the invoice number, column B has the invoice date, and column C has the amount.

Google Sheet showing Invoice, Date, Amount columns with five rows of data.

I want the average amount for invoices dated in May 2026.

Here is the formula:

=AVERAGEIFS(C2:C6, B2:B6, ">="&DATE(2026,5,1), B2:B6, "<="&DATE(2026,5,31))
AVERAGEIFS formula in Google Sheets formula bar, result 300 in cell D2.

The two DATE values mark the start and end of the window. The ampersand glues the operator string to the DATE function so AVERAGEIFS sees a proper date comparison.

Three invoices fall inside May, with amounts 200, 300, and 400, so the average is 300. The April invoice and the June invoice both sit outside the window, so they get skipped.

Pro Tip: Avoid typing dates as plain strings like “2026-05-01”. DATE() is the safer way because it always produces a real date value, no matter how the user’s locale formats dates.

Example 4: Average With a Wildcard Match

You can mix a wildcard pattern with a regular text criterion to narrow the average down.

Below is the dataset. Column A has the product, column B has the region, and column C has the price.

Google Sheets dataset showing Product, Region, Price columns with 5 data entries.

I want the average price of products whose name starts with the letter A and are sold in the East region.

Here is the formula:

=AVERAGEIFS(C2:C6, A2:A6, "A*", B2:B6, "East")
Google Sheets: D2 shows AVERAGEIFS formula averaging prices for 'A*' products in 'East' region.

The asterisk in “A*” stands for any characters after the A, so it matches every name starting with A. The second pair tightens the match to East-region rows only.

Apple at 100, Avocado at 150, and Almond at 200 all qualify on both rules, so the average is 150. Banana fails the wildcard test. Cherry fails it too, even though Cherry is in the East.

Example 5: FILTER Wrapped in AVERAGE

When your conditions get more dynamic, like comparing a column to another column or chaining boolean logic, the AVERAGE plus FILTER pattern is a clean alternative.

Below is the dataset. Column A has the rep name, column B has the region, and column C has the sale amount.

Google Sheets data with Rep, Region, Amount columns, showing 5 entries.

I want the average sale amount for reps in the East region, but written using FILTER instead of AVERAGEIFS.

Here is the formula:

=AVERAGE(FILTER(C2:C6, B2:B6="East"))
AVERAGE(FILTER) formula in Google Sheet D2 calculates 350 for 'East' region.

FILTER returns just the East-region amounts as an array, and AVERAGE takes it from there. No criteria strings, no quoted operators.

Three East rows match, holding 300, 500, and 250, so the average is 350. The two West rows are dropped by FILTER before AVERAGE ever sees them.

The advantage of this pattern is flexibility. You can use any boolean expression inside FILTER, including comparisons between columns or combinations with AND and OR. AVERAGEIFS criteria strings can’t do that.

Tips & Common Mistakes

  • Argument order is different from AVERAGEIF. With AVERAGEIFS, the range you want to average comes first, then the criteria pairs follow. With AVERAGEIF, the criteria range comes first and the average range is last. Mixing them up is one of the easiest ways to get a wrong result.
  • Every range must be the same size. Your average range and each criteria range must span the same number of rows. If they don’t line up, AVERAGEIFS will throw an error or quietly return a wrong number.
  • For a single condition, use AVERAGEIF instead. AVERAGEIFS works fine with one criteria pair, but it’s the same pattern as the SUMIFS family. Keep AVERAGEIF for one condition and reach for AVERAGEIFS once you have two or more.

AVERAGEIFS is the function to use when you need to average rows that satisfy two or more rules at once.

You’ve now seen it with two text criteria, a numeric range on a single column, a date window, a wildcard plus text combo, and the FILTER alternative. Pick the form that fits your data and you’re done.

List of All Google Sheets Functions

Related Google Sheets Functions / Articles: