Documentation/Calc Functions/AVERAGEIFS

From The Document Foundation Wiki
Jump to navigation Jump to search


Function name:

AVERAGEIFS

Category:

Statistical Analysis

Summary:

Returns the arithmetic mean of all cells in a range that satisfy given multiple criteria. The AVERAGEIFS function sums up all the results that match the logical tests and divides this sum by the quantity of selected values.

Syntax:

AVERAGEIFS(Func_Range; Range 1; Criterion 1 [; Range 2; Criterion 2][; … ; [Range 127; Criterion 127]])

Returns:

Returns a real value which is the arithmetic mean of those ranges meeting their corresponding criteria.

Arguments:

Func_range is a range of cells, a name of a named range or a label of a column or a row containing values for calculating the mean.

Range 1 is a range of cells, a name of a named range, or a label of a column or a row, to which the corresponding criterion is to be applied.

Criterion 1 is a string expression representing a logical condition or a cell reference to such string expression. The expression can contain text, numbers, regular expressions or wildcards (if enabled in calculation options).

Range 2 and all the following mean the same as Range 1.

Criterion 2 and all the following mean the same as Criterion 1.

  • Func_Range and Range 1, Range 2... must have the same size, otherwise the function returns err:502 - Invalid argument.
  • If a cell contains TRUE, it is treated as 1, if a cell contains FALSE – as 0 (zero).
  • If no cell qualifies the Criterion then the function returns a division(#DIV/0!) error.
  • If the Criterion is not a valid one like passing just ">" sign or "!" exclamation mark then the function returns a division(#DIV/0!) error since no cell qualifies for the operation.

Additional details:

  • The search supports wildcards or regular expressions. With regular expressions enabled, you can enter "all.*", for example to find the first location of "all" followed by any characters. If you want to search for a text that is also a regular expression, you must either precede every character with a "\" character, or enclose the text into \Q...\E. You can switch the automatic evaluation of wildcards or regular expression on and off in Tools > Options > LibreOffice Calc > Calculate.
Gnome-dialog-warning.svg

Warning:
When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".


Note pin.svg

The logical relation between criteria can be defined as logical AND (conjunction). In other words, if and only if all given criteria are met, a value from the corresponding cell of the given Func_Range is taken into calculation.


Examples:

Consider the following table

A B C
1 Product Name Sales Revenue
2 pencil 20 65
3 pen 35 85
4 notebook 20 190
5 book 17 180
6 pencil-case not not
Gnome-dialog-warning.svg

Warning:
In all examples below, ranges for calculation contain the row #6, which is ignored because it contains text.


Simple usage

Formula Description Returns
=AVERAGEIFS(B2:B6;B2:B6;">=20") Calculates the average for values of the range B2:B6 that are greater than or equal to 20. Here the fifth row does not meet the criterion. 25
=AVERAGEIFS(C2:C6;B2:B6;">=20";C2:C6;">70") Calculates the average for values of the range C2:C6 that are greater than 70 and correspond to cells of B2:B6 with values greater than or equal to 20. Here the second and fifth rows do not meet at least one criterion. 137.5

Using regular expressions and nested functions

Formula Description Returns
=AVERAGEIFS(C2:C6;B2:B6;">"&MIN(B2:B6);B2:B6;"<"&MAX(B2:B6)) Calculates the average for values of the range C2:C6 that correspond to all values of the range B2:B6 except its minimum and maximum. Here the third and fifth rows do not meet at least one criterion 127.5
=AVERAGEIFS(C2:C6;A2:A6;"pen.*";B2:B6;"<"&MAX(B2:B6)) Calculates the average for values of the range C2:C6 that correspond to all cells of the A2:A6 range starting with "pen" and to all cells of the B2:B6 range except its maximum. Here only second row meets all criteria. 65

Using wildcard characters

The wildcard characters question mark (?), asterisk(*), or tilde (~) can be used in criteria. A question mark (?) matches any one character and an asterisk (*) matches zero or more characters of any kind.

Formula Description Returns
=AVERAGEIFS(B2:B6,A2:A6,"*pen*") The function searches what cells from the range A2:A6 contain the word “pen” anywhere, and calculates the average of corresponding values from the B2:B6 range. Here the second, third and sixth row participate in the calculation. The search is performed in the A2:A6 range, but the values are returned from the B2:B6 range. 27.5

Reference to a cell as a criterion

If you need to change a criterion easily, you may want to specify it in a separate cell and use a reference to this cell in the condition of AVERAGEIFS function.

Formula Description Returns
=AVERAGEIFS(C2:C6;A2:A6;E2&".*";B2:B6;"<"&MAX(B2:B6)) where E2 = pen Here the link to the cell is substituted with its content. 65

More examples

For more examples, download and view this Calc spreadsheet.

Related LibreOffice functions:

AVERAGEIF

AVEDEV

AVERAGE

AVERAGEA

COUNTIFS

MAXIFS

MINIFS

SUMIFS

ODF standard:

Section 6.18.6, part 2

Equivalent Excel functions:

AVERAGEIFS