AVERAGEIF

Vrátí aritmetický průměr všech buněk oblasti, které splňují danou podmínku. Funkce AVERAGEIF sečte všechny výsledky, které vyhovují danému logickému testu, a součet vydělí počtem vybraných hodnot.

tip

Tato funkce je k dispozici od vydání LibreOfficeDev 4.0


Syntaxe

AVERAGEIF(Oblast; Kritérium [; Oblast_pro_průměr ])

Oblast – povinný argument. Pole, název pojmenované oblasti nebo popisek sloupce nebo řádku obsahujícího čísla pro výpočet průměru nebo čísla či text pro podmínku.

Kritérium – povinný argument. Podmínka v podobě výrazu nebo odkaz na buňku s výrazem, jenž určuje, které buňky se mají pro výpočet průměru použít. Výraz může obsahovat text, čísla, regulární výrazy nebo zástupné znaky (podle toho, jsou-li povoleny v možnostech výpočtu).

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 - LibreOfficeDev Calc - Calculate.

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".


Oblast_pro_průměr – nepovinný. Jedná se o oblast hodnot pro výpočet průměru.

note

If the Average_Range is not specified, Range is used for both, the calculation of the mean and the search according to the condition. If Average_Range is specified, the Range is used only for the condition test, while Average_Range is used for the average calculation.


Ikona poznámky

Tato funkce je součástí standardu Open Document Format for Office Applications (OpenDocument) verze 1.2 (ISO/IEC 26300:2-2015).


warning

Pokud je buňka v oblasti hodnot pro výpočet průměru prázdná nebo obsahuje text, funkce AVERAGEIF ji ignoruje.
Pokud je celá tato oblast prázdná, obsahuje pouze text nebo žádná z hodnot oblasti nesplňuje podmínku, funkce vrátí chybu #DIV/0!


Příklad

Uvažujme následující tabulku

A

B

C

1

Název zboží

Prodeje

Tržby

2

nůžky

20

65

3

nůž

35

85

4

poznámkový blok

20

190

5

známka

17

180

6

nůž na papír

ne

ne


warning

Ve všech níže uvedených příkladech rozsahy pro výpočet obsahují řádek číslo 6, který je ignorován, protože obsahuje text.


warning

Ve všech následujících příkladech je v oblasti pro výpočet průměru zahrnut řádek číslo 6, který se ale ignoruje, protože obsahuje text.


Základní použití

=AVERAGEIF(B2:B6;"<35")

Vypočítá průměr hodnot z oblasti B2:B6, které jsou menší než 35. Vrátí 19, protože při výpočtu není použit druhý řádek.

=AVERAGEIF(B2:B6;"<"&MAX(B2:B6))

Vypočítá průměr hodnot z téže oblasti, které jsou menší než maximální hodnota v této oblasti. Vrátí 19, protože při výpočtu není použita největší hodnota (druhý řádek).

=AVERAGEIF(B2:B6;">"&SMALL(B2:B6;1))

Vypočítá průměr hodnot z téže oblasti, které jsou větší než první nejmenší hodnota v této oblasti. Vrátí 25, protože při výpočtu není použita první nejmenší hodnota (čtvrtý řádek).

Použití Oblasti_pro_průměr

=AVERAGEIF(B2:B6;"<35";C2:C6)

Funkce vyhledá, které hodnoty jsou v oblasti B2:B6 menší než 35, a vypočítá průměr odpovídajících hodnot z oblasti C2:C6. Vrátí 145, protože při výpočtu není použit druhý řádek.

=AVERAGEIF(B2:B6;">"&MIN(B2:B6);C2:C6)

Funkce vyhledá, které hodnoty jsou v oblasti B2:B6 větší než nejmenší hodnota v téže oblasti, a vypočítá průměr odpovídajících hodnot z oblasti C2:C6. Vrátí 113,3, protože při výpočtu není použit čtvrtý řádek (v němž se nachází nejmenší hodnota z oblasti B2:B6).

=AVERAGEIF(B2:B6;"<"&LARGE(B2:B6;2);C2:C6)

Funkce vyhledá, které hodnoty jsou v oblasti B2:B6 menší než druhá největší hodnota v téže oblasti, a vypočítá průměr odpovídajících hodnot z oblasti C2:C6. Vrátí 180, protože při výpočtu je použit pouze čtvrtý řádek.

Použití regulárních výrazů

=AVERAGEIF(A2:A6;"nůž";B2:B6)

Funkce vyhledá, které buňky z oblasti A2:A6 obsahují pouze slovo „nůž“, a vypočítá průměr odpovídajících hodnot z oblasti B2:B6. Vrátí 35, protože při výpočtu je použit pouze druhý řádek. Vyhledává se v oblasti A2:A6, hodnoty jsou však vraceny z oblasti B2:B6.

=AVERAGEIF(A2:A6;"nůž.*";B2:B6)

Funkce vyhledá, které buňky z oblasti A2:A6 začínají na „nůž“ a přitom končí libovolným počtem jiných znaků, a vypočítá průměr odpovídajících hodnot z oblasti B2:B6. Vrátí 27,5, protože nyní splňuje podmínku také řetězec „nůžky“, a při výpočtu tak jsou použity první i druhý řádek.

=AVERAGEIF(A2:A6;".*známk.*";B2:B6)

Funkce vyhledá, které buňky z oblasti A2:A6 obsahují „známk“ a přitom začínají a končí libovolným počtem jiných znaků, a vypočítá průměr odpovídajících hodnot z oblasti B2:B6. Vrátí 18,5, protože při výpočtu jsou použity pouze třetí a čtvrtý řádek.

Odkaz na buňku jako kritérium

Potřebujete-li kritérium snadno změnit, můžete jej zadat do samostatné buňky, na kterou odkážete v podmínce funkce AVERAGEIF.

=AVERAGEIF(A2:A6;".*"&E2&".*";B2:B6)

Funkce vyhledá, které buňky z oblasti A2:A6 obsahují kombinaci znaků zadaných do buňky E2 (přitom se na začátku a na konci řetězce může nacházet libovolný počet jiných znaků), a vypočítá průměr odpovídajících hodnot z oblasti B2:B6. Pokud E2 = známk, funkce vrátí 18,5.

=AVERAGEIF(B2:B6;"<"&E2;C2:C6)

Funkce vyhledá, které buňky z oblasti B2:B6 obsahují hodnotu menší než určenou v buňce E2, a vypočítá průměr odpovídajících hodnot z oblasti C2:C6. Pokud E2 = 35, funkce vrátí 145.