AVERAGEIFS

Vrátí aritmetický průměr všech buněk oblasti, které splňují více kritérií. Funkce AVERAGEIFS sečte všechny výsledky, které vyhovují daným logickým testům, a součet vydělí počtem vybraných hodnot.

tip

Tato funkce je k dispozici od verze LibreOffice 4.0.


Syntaxe

AVERAGEIFS(Oblast; Oblast1; Kritérium [; Oblast2; Kritérium2][; ... ; [Oblast127; Kritérium127]])

Oblast_pro_průměr – povinný argument. Jedná se o oblast buněk, název pojmenované oblasti nebo popisek sloupce nebo řádku obsahujícího hodnoty pro výpočet průměru.

Oblast1 – vyžadovaný argument. Jedná se o oblast buněk, název pojmenované oblasti nebo popisek sloupce nebo řádku, na které se má odpovídající kritérium použít.

Kritérium: Kritérium je odkaz na jedinou buňku, číslo nebo text. Používá se pro porovnání s obsahem buněk.

Odkaz na prázdnou buňku je interpretován jako číselná hodnota 0.

Výraz pro porovnávání může být:

Oblast2 – nepovinné. Oblast2 a všechny následující mají stejný význam jako Oblast1.

Kritérium2 – nepovinný. Kritérium2 a následující mají stejný význam jako Kritérium.

Vyhledávání podporuje zástupné znaky nebo regulární výrazy. Zadáte-li například "all.*", najdete první výskyt "all" následovaný jakýmikoliv znaky. Chcete-li hledat text, který je rovněž regulárním výrazem, musíte před každý regulární výraz napsat metaznak nebo operátor se znakem "\" nebo text uzavřít mezi \Q...\E. Vypnout a zapnout automatické vyhodnocování regulárních výrazů můžete v - LibreOffice Calc - Výpočty.

warning

Pokud použijete funkci, jejíž jeden nebo více argumentů představují řetězce s kritérii vyhledávání, nejprve dojde k pokusu převést tyto řetězce na číslo, například ".0" se převede na 0 a podobně. V případě úspěšného převodu se nebude vyhledávat regulární výraz, ale číslo. Pokud však používáte národní prostředí s jiným oddělovačem desetinných míst, než je tečka, regulární výraz bude fungovat. Chcete-li regulární výraz vždy vynutit místo číselného výrazu, použijte výraz, který nelze interpretovat jako číslo, například ".[0]", ".\0" nebo "(?i).0".


Oblast a Oblast1, Oblast2... musí mít shodnou velikost, jinak funkce vrátí chybu Chyba:502 - neplatný argument.

note

Logický vztah mezi kritérii lze definovat jako logické AND (konjunkce). Jinými slovy, pokud a pouze pokud jsou splněna všechna daná kritéria, hodnota z odpovídající buňky dané Oblasti se vezme do výpočtu.


Funkce může mít až 255 argumentů, což znamená, že pro ně můžete zadat 127 oblastí kritérií a kritérií.

Obsahuje-li buňka hodnotu PRAVDA, je považována za číslo 1, obsahuje-li hodnotu NEPRAVDA, je považována za 0 (nulu).

note

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


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.


Základní použití

=AVERAGEIFS(B2:B6;B2:B6;">=20")

Vypočítá průměr hodnot z oblasti B2:B6, které jsou větší nebo rovny 20. Vrátí 25, protože pátý řádek kritérium nesplňuje.

=AVERAGEIFS(C2:C6;B2:B6;">=20";C2:C6;">70")

Vypočítá průměr hodnot z oblasti C2:C6, které jsou větší než 70 a odpovídají buňkám oblasti B2:B6 s hodnotami většími nebo rovnými 20. Vrátí 137,5, protože druhý a pátý řádek aspoň jedno z kritérií nesplňují.

Použití regulárních výrazů a vnořených funkcí

=AVERAGEIFS(C2:C6;B2:B6;">"&MIN(B2:B6);B2:B6;"<"&MAX(B2:B6))

Vypočítá průměr hodnot z oblasti C2:C6, které odpovídají všem hodnotám z oblasti B2:B6 kromě jejich minima a maxima. Vrátí 127,5, protože třetí a pátý řádek aspoň jedno z kritérií nesplňují.

=AVERAGEIFS(C2:C6;A2:A6;"nůž.*";B2:B6;"<"&MAX(B2:B6))

Vrátí průměr hodnot z oblasti C2:C6, které odpovídají všem buňkám z oblasti A2:A6 začínajícím na "nůž" a všem buňkám z oblasti B2:B6 s výjimkou jejich maxima. Vrátí 65, protože všechna kritéria splňuje pouze druhý řá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 AVERAGEIFS. Například výše uvedenou funkci lze přepsat následovně:

=AVERAGEIFS(C2:C6;A2:A6;E2&".*";B2:B6;"<"&MAX(B2:B6))

Pokud E2 = nůž, funkce vrátí 65, protože odkaz na buňku je nahrazen jejím obsahem.

Otevřít soubor s příkladem:

Podpořte nás!