AVERAGE

AVERAGE(list)

Gives the mean of a list of numbers, durations or dates, such as the average duration of the tasks in a phase. Blanks are left out of the count rather than treated as 0, and a list with no values is blank, not 0.

Arguments

ArgumentWhat to give it
listA column read from a set of rows, like SAME([Phase])[Duration], or several single values. Numbers, durations or dates. It also takes one level over time (see below).

Examples

Formula
=AVERAGE(SAME([Phase])[Duration])

The average duration of the tasks in this task's phase. Set it beside [Duration] to spot the outliers.

Formula
=AVERAGE(FILTER(All, All[Phase] = "Civil")[Duration])

The average duration of the civil tasks, the same on every row.

Formula on WBS rows
=AVERAGE(Tasks[% complete])

On a WBS row: the plain mean of its tasks' % complete. Every task counts the same, however long it is.

Formula
=AVERAGE(HISTORY(INDAYS([Total float])))

The task's total float in days, averaged over the updates. A level over time is averaged over the task's working time from its first point to its last, so a value that held for longer weighs more.

Reach for something else when

You wantUse
The middle value, not thrown off by a few long tasksMEDIAN
The total, not the meanSUM
A mean weighted by durationSUM(…) / SUM(…): see SUM
The value a share of the list falls belowPERCENTILE

Common questions

Is there an AVERAGEIF?

No. Filter the rows first, then average the column: AVERAGE(FILTER(All, All[Phase] = "Civil")[Duration]) is Excel's AVERAGEIF.

Why is AVERAGE blank?

There were no values: the set was empty, or the column was blank on every row of it. Total float, for one, is blank once a task is complete, so complete tasks drop out of an average of float.

Can I average text?

No: "AVERAGE can't use a list of Text".

The editor refuses this
=AVERAGE(Predecessors[Phase])

To count the different values, use COUNTDISTINCT.

Can I average an amount over time?

No. An amount, such as hours spread over the task, has no mean at a moment; the editor says "An amount over time has no mean: add it up with TOTAL(…), or divide it by another amount for a rate (a level over time) and take its AVERAGE". See amounts and levels.

The editor refuses this
=AVERAGE(SPREAD(INHOURS([Duration]), [Start date], [Finish date]))