Available in:All versions (Works in Excel 2007, every later version, Microsoft 365 and Excel for the web)Examples need Excel 2021 or laterCategory:Statistical

AVERAGE

GEMIDDELDE in Dutch Excel

Returns the arithmetic mean: the sum of the numbers divided by how many numbers there are, with blanks and text left out.

Difficulty rating 1 of 5. One idea, but the difference between a blank cell and a zero changes the answer, and nothing on screen warns you.

Last updated: 13 October 2026

See the worked examples

Sheet excerpt: D2 holds the formula
RowABCD
1PeriodPersonnel costsAverage per month
211€48,250.00€ 48.250,00€49,000.00€ 49.000,00=AVERAGE(B2:B7)=AVERAGE(B2:B7)
322€47,900.00€ 47.900,00
433€49,100.00€ 49.100,00
544€48,600.00€ 48.600,00
655€51,350.00€ 51.350,00
766€48,800.00€ 48.800,00
Formula cell (D2)Input

Result: €49,000.00€ 49.000,00

=AVERAGE(B2:B7)
=AVERAGE(B2:B7)

What AVERAGE does and when to use it

What it does: it adds the numbers in a range and divides by how many there are, for example the average monthly personnel cost over twelve months.

When to use it: for a typical value in a list. When only some rows should count, use AVERAGEIFS. For a list of rates, such as a depreciation rate per asset category, weight by the amounts (see the Master example). It replaces SUM divided by COUNT.

How Excel evaluates it

Excel collects values from every argument. In a range it keeps numbers, zeros included, and drops:

  • blank cells
  • text
  • TRUE or FALSE
  • numbers stored as text, without a warning

A value typed directly into the formula is converted where possible, so AVERAGE("4", 2) is 3. Excel then adds the kept values and divides by how many there are. If no numbers are left, it returns #DIV/0!, and if any cell holds an error, that error comes back instead.

Watch out: AVERAGE does not find a blank cell, so it does not count; a cell with 0 is found and pulls the average down.

Mental model

Sharing a pizza bill: everyone who ate pays an equal part, including the friend who had only water and pays 0 towards the food. The friend who did not come is not in the count at all.

Terms used on this page: error value, argument, range, cell

AVERAGE(number1, [number2], ...)
AVERAGE(number1; [number2]; ...)
Arguments
ArgumentTypeMeaning
number1RequiredThe first number, cell or range to average.
number2OptionalMore numbers, cells or ranges, up to 255 arguments in total.

Return value:A number: the arithmetic mean of the numbers

Formulas use commas (,) between arguments, as in English Excel. Formulas use semicolons (;) between arguments, as in Dutch Excel. Formulas use commas (,) between arguments, as in English Excel; Dutch Excel uses semicolons (;).

Worked examples

Beginner

Average monthly personnel costs for an analytical review

You are doing an analytical review at Veldhuis Installatie BV. The ledger shows account 4000 Personeelskosten for periods 1 to 6 of 2025. You want the average per month as a first expectation, to compare later with the payroll summary (loonjournaal).

Sheet excerpt: D2 holds the formula
RowABCDE
1PeriodPersonnel costsAverage per month
211€48,250.00€ 48.250,00€49,000.00€ 49.000,00=AVERAGE(B2:B7)=AVERAGE(B2:B7)
322€47,900.00€ 47.900,00
433€49,100.00€ 49.100,00
544€48,600.00€ 48.600,00
655€51,350.00€ 51.350,00
766€48,800.00€ 48.800,00
8
Formula cell (D2)Input

Formula in D2

=AVERAGE(B2:B7)
=AVERAGE(B2:B7)

Result: €49,000.00€ 49.000,00

Step by step
  1. Excel reads the range B2:B7 and finds six cells, all holding numbers.
  2. It adds them: 48,25048.250 + 47,90047.900 + 49,10049.100 + 48,60048.600 + 51,35051.350 + 48,80048.800 = 294,000294.000.
  3. It counts them: 6.
  4. It divides: 294,000294.000 / 6 = 49,00049.000. That lands in D2.
  5. If period 5 is corrected from 51,35051.350 to 52,55052.550, the sum becomes 295,200295.200 and the average 295,200295.200 / 6 = 49,20049.200.

Watch out: Period 5 is 2,3502.350 above the average of 49,00049.000, but the average alone does not tell you whether that is a deviation worth investigating. It is an expectation, not a threshold; set the threshold from your performance materiality.

More on this example: why it works

Why it works

Every cell in the range is a number, so the sum and the count cover the same six periods. AVERAGE does both steps at once, which is why it matches SUM(B2:B7) / COUNT(B2:B7) exactly.

Intermediate

Manual journal entries per period with a zero and a missing period

For journal entry testing you count the manual entries (journal MEM) the client posted per period. In period 3 there were genuinely 0. The export for period 5 has not been delivered yet, so that cell is blank.

You want the average per period, rounded to one decimal for your working paper.

Sheet excerpt: E1 holds the formula
RowABCDEF
1PeriodManual entriesAverage per period10.810,8=ROUND(AVERAGE(B2:B8), 1)=ROUND(AVERAGE(B2:B8); 1)
2111818
3221212
43300
5441515
655
76688
8771212
9
Formula cell (E1)Input

Formula in E1

=ROUND(AVERAGE(B2:B8), 1)
=ROUND(AVERAGE(B2:B8); 1)

Result: 10.810,8

Step by step
  1. Excel evaluates the inner AVERAGE first. It reads B2:B8, seven cells. B6 (period 5) is blank and is left out. B4 (period 3) holds 0, which is a number, so it stays.
  2. Six numbers remain: 18 + 12 + 0 + 15 + 8 + 12 = 65.
  3. 65 / 6 = 10.8333... AVERAGE returns that full value.
  4. ROUND with num_digits 1 keeps one decimal: the next digit is 3, so 10.8333 becomes 10.8. The cell now stores 10.8, not a longer number formatted to look short.
  5. Contrast the alternatives. If period 5 were typed as 0, the count would be 7 and the result 65 / 7 = 9.3. If period 3 were left blank as well, the count would be 5 and the result 65 / 5 = 13.0. Three answers from the same entries, depending only on blank versus zero.
  6. Enter 14 for period 5 once the export arrives and the result becomes 79 / 7 = 11.3.

Watch out: If someone types a dash or 'n/a' in period 5, AVERAGE skips it like a blank, which is harmless here. If period 7 arrives as the text '12', it is skipped too and the result silently becomes 53 / 5 = 10.6.

More on this example: why it works, 1 more pitfall, 1 variation

Why it works

AVERAGE treats a blank as 'no data' and a zero as 'data that happens to be zero', which is exactly the distinction you need: the period that was not delivered should not drag the average down, the period without manual entries should. ROUND only shortens the final result, so the average itself is calculated on the full values.

More to watch out for

  • A formula in period 5 that returns "" for 'not yet delivered' is text, not blank, and is skipped the same way. A formula that returns 0 for 'not yet delivered' is counted and lowers the average.

Variations

=ROUND(AVERAGEIF(B2:B8, "<>0"), 1)
=ROUND(AVERAGEIF(B2:B8; "<>0"); 1)

Average of the periods with at least one manual entry: 65 / 5 = 13.0. Use it only when a zero means 'not recorded' rather than 'nothing was posted'.

Advanced

Average amount of manual entries up to a chosen period

From the XAF auditfile you have one row per entry with entry number, journal, period and amount. For your interim work you want the average amount of the entries in the journal you pick (here MEM) up to and including the period you pick.

You reuse the same two selector cells for other journals, and a journal without entries should show a message, not an error.

Sheet excerpt: G3 holds the formula
RowABCDEFGH
1Entry no.JournalPeriodAmountJournalMEM
225-0101MEM11€4,800.00€ 4.800,00Up to period66
325-0188INK22€2,400.00€ 2.400,00Average amount€5,100.00€ 5.100,00=IFERROR(AVERAGEIFS(D2:D9, B2:B9, G1, C2:C9, "<="&G2), "No entries")=IFERROR(AVERAGEIFS(D2:D9; B2:B9; G1; C2:C9; "<="&G2); "No entries")
425-0214MEM44€7,950.00€ 7.950,00
525-0230VRK22€12,000.00€ 12.000,00
625-0297MEM55€2,550.00€ 2.550,00
725-0612MEM99€15,500.00€ 15.500,00
825-0654INK55€3,300.00€ 3.300,00
925-0733MEM1111€9,000.00€ 9.000,00
10
Formula cell (G3)Input

Formula in G3

=IFERROR(AVERAGEIFS(D2:D9, B2:B9, G1, C2:C9, "<="&G2), "No entries")
=IFERROR(AVERAGEIFS(D2:D9; B2:B9; G1; C2:C9; "<="&G2); "No entries")

Result: €5,100.00€ 5.100,00

Step by step
  1. Excel evaluates AVERAGEIFS first. The second criterion is built from G2: "<="&6 becomes the text "<=6".
  2. Test one on B2:B9 against MEM: rows 2, 4, 6, 7 and 9 pass.
  3. Test two on C2:C9 against <=6: of those rows, row 7 (period 9) and row 9 (period 11) fail. Rows 2, 4 and 6 (periods 1, 4 and 5) pass both tests.
  4. AVERAGEIFS averages the matching cells of D2:D9: (4,8004.800 + 7,9507.950 + 2,5502.550) / 3 = 15,30015.300 / 3 = 5,1005.100.
  5. 5,1005.100 is not an error, so IFERROR passes it through to G3.
  6. Type BNK in G1. No row passes the first test, AVERAGEIFS has nothing to divide by and returns #DIV/0!, and IFERROR replaces it with No entries.

Watch out: IFERROR also hides a broken formula: if the amount column is one row shorter than the others, AVERAGEIFS returns #VALUE! and the sheet shows No entries, which is false. Test the formula without IFERROR first.

More on this example: why it works, 2 more pitfalls, 1 variation

Why it works

AVERAGEIFS applies the same AND logic as SUMIFS and then divides the sum of the matching cells by their count, so the conditions decide both parts of the average at once. The only error it produces on clean data is #DIV/0! for an empty selection, which is what IFERROR is catching here.

More to watch out for

  • Amounts that arrive as text, for example '7950' pasted from a CSV export, are skipped by AVERAGEIFS, and the average quietly covers fewer entries than it seems. Compare the count of matching rows with COUNTIFS.
  • The argument order differs from AVERAGEIF: in AVERAGEIFS the average_range comes first. Swapping them returns a wrong number or #DIV/0!.

Variations

=AVERAGE(FILTER(D2:D9, (B2:B9 = G1) * (C2:C9 <= G2)))
=AVERAGE(FILTER(D2:D9; (B2:B9 = G1) * (C2:C9 <= G2)))

The same 5,1005.100 via FILTER; an empty selection shows #CALC!. Prefer it when the condition needs a calculation SUMIFS-style criteria cannot express.

MasterExcel 2021 or later (This example needs Excel 2021 or later)

Weighted average depreciation rate of the fixed asset register

The client's fixed asset register (activastaat) gives per category the acquisition cost and the depreciation rate. For your analytical review of depreciation you want one average rate for all assets together, to multiply with total cost as an expectation.

The categories differ a lot in size, so averaging the rates would let IT equipment count as much as buildings.

Sheet excerpt: E2 holds the formula
RowABCDEF
1CategoryAcquisition costDepreciation rateWeighted rate
2Buildings€1,200,000.00€ 1.200.000,002.5%2,5%7.46%7,46%=LET( cost, B2:B6, rate, C2:C6, total, SUM(cost), IF(total = 0, 0, ROUND(SUMPRODUCT(cost, rate) / total, 4)) )=LET( cost; B2:B6; rate; C2:C6; total; SUM(cost); IF(total = 0; 0; ROUND(SUMPRODUCT(cost; rate) / total; 4)) )
3Machinery€450,000.00€ 450.000,0010%10%
4Furniture€120,000.00€ 120.000,0020%20%
5Vehicles€180,000.00€ 180.000,0020%20%
6IT equipment€60,000.00€ 60.000,0025%25%
7
Formula cell (E2)Input

Formula in E2

=LET(
  cost, B2:B6,
  rate, C2:C6,
  total, SUM(cost),
  IF(total = 0, 0, ROUND(SUMPRODUCT(cost, rate) / total, 4))
)
=LET(
  cost; B2:B6;
  rate; C2:C6;
  total; SUM(cost);
  IF(total = 0; 0; ROUND(SUMPRODUCT(cost; rate) / total; 4))
)

Result: 7.46%7,46%

Step by step
  1. LET names the acquisition costs cost and the rates rate. total is SUM(cost): 1,200,0001.200.000 + 450,000450.000 + 120,000120.000 + 180,000180.000 + 60,00060.000 = 2,010,0002.010.000.
  2. total is not 0, so IF evaluates the calculation. SUMPRODUCT multiplies each cost by its rate, which gives the yearly depreciation per category:

    • 1,200,0001.200.000 × 0.025 = 30,00030.000
    • 450,000450.000 × 0.10 = 45,00045.000
    • 120,000120.000 × 0.20 = 24,00024.000
    • 180,000180.000 × 0.20 = 36,00036.000
    • 60,00060.000 × 0.25 = 15,00015.000
  3. It adds them: 30,00030.000 + 45,00045.000 + 24,00024.000 + 36,00036.000 + 15,00015.000 = 150,000150.000, the expected total depreciation for the year.
  4. Dividing by total gives 150,000150.000 / 2,010,0002.010.000 = 0.074627, and ROUND to four decimals gives 0.0746, shown as 7.46%.
  5. Compare AVERAGE(C2:C6): (0.025 + 0.10 + 0.20 + 0.20 + 0.25) / 5 = 0.775 / 5 = 0.155, or 15.5%. Every category now weighs the same, so IT equipment with 60,00060.000 at 25% counts as much as buildings with 1,200,0001.200.000 at 2.5%. The plain average lies 0.155 - 0.0746 = 0.0804, or 8.04 percentage points, above the weighted one.
  6. If the register were empty or all costs 0, total would be 0 and IF would return 0 instead of #DIV/0!.

Watch out: The mirror-image mistake is AVERAGE(C2:C6), 15.5%: a plausible rate that is more than double the weighted rate of 7.46%, and your expected depreciation would be too high by about 161,500161.500 (15.5% of 2,010,0002.010.000 is 311,550311.550 against 150,000150.000).

More on this example: why it works, 2 more pitfalls, 1 variation

Why it works

A weighted average is the total of cost times rate divided by total cost, so the correct company rate is total yearly depreciation divided by total acquisition cost. SUMPRODUCT does the cost times rate for every row in one step.

Do not use this construction when the register already lists the yearly depreciation charge per asset: SUM(charge) / SUM(cost) is exact and needs no rates. That alternative is clearer to review, but it needs a charge column that the client's specification may not have.

More to watch out for

  • Dividing SUMPRODUCT by COUNT(cost) instead of SUM(cost) gives 150,000150.000 / 5 = 30,00030.000, which is the average depreciation per category, not a rate. The size of the number usually gives it away.
  • A category with a cost but a blank rate counts its cost in total but adds no depreciation, which pulls the result down. Check that every row with a cost has a rate.

Variations

=SUMPRODUCT(B2:B6, C2:C6) / SUM(B2:B6)
=SUMPRODUCT(B2:B6; C2:C6) / SUM(B2:B6)

The bare weighted average without LET, rounding or the zero guard: 0.074627.

Common mistakes

Common mistakes
SymptomCauseFix
The average drops after entering 0 for gapsMissing values are entered as 0 instead of left blank, and the average drops.Leave cells blank when a value is unknown, and use 0 only for a real zero. To exclude zeros already in the data, use AVERAGEIF(B2:B8, "<>0").
A plausible average that is wrongSome figures are numbers stored as text, so they fall out of both the sum and the count. The result looks reasonable and is wrong.Compare COUNT(range) with the number of rows you expect. If they differ, convert the column with Convert to Number.
Average of rates ignores the amountsAveraging a column of rates, such as the depreciation rate per asset category, gives every category the same weight however large its cost.Weight by the amounts: SUMPRODUCT(amounts, rates) / SUM(amounts).