fgFormula Gym
Interactive lesson · Excel & Google Sheets

The Excel AVERAGE function, explained interactively.

Last updated: April 2026

AVERAGE returns the arithmetic mean of a list of numbers. Like MIN and MAX it silently skips empty cells, text, and booleans — useful most of the time, quietly wrong when you expected those to count. The twist: AVERAGE does include zeros, which trips people who assumed a blank and a zero are the same.

01 · See it work

How to use AVERAGE

  1. Type =AVERAGE( and select the range of numbers — one contiguous range or a list of ranges and literal numbers.
  2. Close the parenthesis. AVERAGE returns the sum of numeric values divided by their count. Text, blanks, and booleans are silently ignored.
  3. Zeros are included. For a non-zero mean, use AVERAGEIF(range, "<>0").
  4. For a conditional mean (“average score for Active students”), use AVERAGEIF / AVERAGEIFS instead.

The demo has one text cell ("Absent") and one blank. AVERAGE skips both — only the 6 numeric scores contribute to the mean.

FUNCTIONAVERAGE
Returns the arithmetic mean of a list of numbers. Silently skips empty cells, text, and booleans — same rule as MIN and MAX, opposite of AVERAGEA.
ARG 1+number1, [number2], …
One or more numbers, ranges, or references. Up to 255 arguments. AVERAGE sums the numeric ones and divides by their count — zero values count, blanks and text don’t.
D2
fx
=AVERAGE(B2:B9)
ABD
1StudentScoreAverage
2Ava9270.67
3Ben58
4Chloe75
5Dev47
6ElenaAbsent
7Farid64
8Grace(blank)
9Harvey88
D2 is the active cell — it holds =AVERAGE(B2:B9). AVERAGE skipped the text cell ("Absent") and the blank cell — it averages 6 numeric values and returns their mean, 70.67.
02 · Syntax, argument by argument

AVERAGE syntax and arguments

One required argument, up to 255 total. See Microsoft’s official AVERAGE reference for the canonical specification.

=AVERAGE(number1, [number2], …)
number1, [number2], …
One to 255 arguments. Each can be a cell, a range, a literal number, or any formula returning a number. AVERAGE sums all numeric values across every argument and divides by their count. Text, blanks, and logical values in cell references are skipped; literals passed directly (AVERAGE(TRUE, 5)) are coerced to 1/0. Zero values are counted — they lower the mean like any other number.
03 · In the wild

AVERAGE examples

Four patterns that cover nearly every real-world AVERAGE use.

Example 1: AVERAGE for a plain mean

The canonical case — mean of a column of scores, prices, or times.

=AVERAGE(B2:B100)

Returns the arithmetic mean of every numeric value in B2:B100. Text and blanks are silently skipped; zeros are counted. Returns #DIV/0! if the range has no numbers at all.

Example 2: AVERAGE excluding zeros

Swap to AVERAGEIF when blanks and zeros should be treated the same way.

=AVERAGEIF(B2:B100, "<>0")

Includes only non-zero values in the mean. Zeros are excluded from both the sum and the count. Common for revenue or engagement metrics where zero means “no data” rather than “zero activity”.

Example 3: AVERAGE across multiple ranges

AVERAGE accepts up to 255 arguments — combine disjoint ranges without a helper column.

=AVERAGE(B2:B50, D2:D50, F2:F50)

Returns the mean across all three ranges combined — as if they were one long list. Each range is weighted by its actual count of numeric values, not by its declared size.

Example 4: AVERAGE wrapped in IFERROR for dashboards

Guard against #DIV/0! when the range might be empty or filtered down to nothing.

=IFERROR(AVERAGE(FILTER(B:B, A:A=E1)), "—")

FILTER narrows the range to rows where A equals the user’s input in E1; AVERAGE takes the mean; IFERROR shows "—" instead of #DIV/0! when nothing matches.

04 · Errata

Common AVERAGE errors and fixes

Four failure modes, each with what to check and how to recover.

AVERAGE returns #DIV/0!

Cause: no numeric values in the range — either everything is text/blank, or numbers are stored as text and AVERAGE can’t see them.

Check with COUNT(range). If it returns 0, the range truly has no numbers; if it returns fewer than you expect, values are text-coerced. Fix with Data → Text to Columns → Finish, or wrap in IFERROR for a cleaner display.

AVERAGE dragged down by zeros

Cause: zeros are counted. A column of 50 real values + 20 zero-filled empty rows averages much lower than the real-value mean.

Switch to AVERAGEIF(range, "<>0"), or filter zeros out of the source before averaging. The right choice depends on whether zero means “no activity” (exclude) or “real zero” (include).

AVERAGE skewed by outliers

Cause: one or two extreme values drag the mean away from where most data sits — classic for salary, response time, order size.

Switch to MEDIAN, or use TRIMMEAN(range, 0.2) to drop the top and bottom 10% before averaging. Both are more robust to outliers than AVERAGE.

AVERAGE ignoring cells that look numeric

Cause: numbers stored as text — the classic CSV-import artefact. AVERAGE silently skips them like any other text.

Run =ISNUMBER(B2) on a suspect cell. Coerce with Data → Text to Columns → Finish, or multiply by 1 in a helper column to force numeric conversion.

05 · Kindred functions

AVERAGE vs AVERAGEIF, MEDIAN & AVERAGEA

Four measures of centre. Pick based on whether you want a plain mean, a filtered mean, the middle value, or text-as-zero behaviour.

FunctionReturnsText / blank handlingUse when
AVERAGEArithmetic meanSkipped silentlyClean numeric data with no outliers
AVERAGEIFMean of matching rowsSkipped silently“Mean for Active users” — one condition
MEDIANMiddle valueSkipped silentlyData with outliers — salary, latency, price
AVERAGEAMean with text/booleans as 0/1Coerced to 0/1 — includedRare. Flag-coded survey data only.

Rule of thumb: start with AVERAGE; reach for AVERAGEIFS when you need conditions; switch to MEDIAN when the distribution is skewed. AVERAGEA is a specialty tool — you’ll know when you need it.

06 · Marginalia

AVERAGE frequently asked questions

6.01Does AVERAGE include zeros?

Yes. AVERAGE treats 0 as a real data point and includes it in the mean. To exclude zeros, use AVERAGEIF: =AVERAGEIF(B2:B100, "<>0"). This is the single most common surprise — people who want a “non-zero average” need AVERAGEIF, not AVERAGE.

6.02Does AVERAGE count text or blank cells?

No. AVERAGE silently skips any non-numeric value — text like "Absent", empty cells, and booleans are all ignored. They don’t count toward the denominator. If you want text coerced (TRUE = 1, FALSE = 0, text = 0), use AVERAGEA.

6.03Why does AVERAGE return #DIV/0!?

Because every cell in the range is non-numeric — text, blanks, or booleans — leaving nothing to divide by. Wrap in IFERROR to substitute a fallback: =IFERROR(AVERAGE(range), "—"), or use =IF(COUNT(range)=0, "—", AVERAGE(range)) to surface the empty case explicitly.

6.04How do I average only values that meet a condition?

Use AVERAGEIF for one condition: =AVERAGEIF(A2:A100, "Food", C2:C100). Use AVERAGEIFS for multiple conditions AND’d together. Both skip non-numeric cells the same way AVERAGE does.

6.05When should I use MEDIAN instead of AVERAGE?

Use MEDIAN when the distribution has outliers — one extreme value can drag AVERAGE far from where the data actually sits. Salary, response-time, and listing-price data are classic cases. AVERAGE is fine for normally-distributed data where each point pulls its weight.

Microsoft Excel is a registered trademark of Microsoft Corporation. Google Sheets is a trademark of Google LLC. Formula Gym is not affiliated with, endorsed by, or sponsored by either company.