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.
Tato funkce je k dispozici od verze LibreOffice 4.0.
AVERAGEIFS(Func_Range; Range1; Criterion[; Range2; Criterion2][; … ; [Range127; Criterion127]])
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.
Criterion: A criterion is a single cell Reference, Number or Text. It is used in comparisons with cell contents.
A reference to an empty cell is interpreted as the numeric value 0.
A matching expression can be:
-
A Number or Logical value. A matching cell content equals the Number or Logical value.
-
A value beginning with a comparator (<, <=, =, >, >=, <>).
For =, if the value is empty it matches empty cells.
For <>, if the value is empty it matches non-empty cells.
For <>, if the value is not empty it matches any cell content except the value, including empty cells.
Note: "=0" does not match empty cells.
For = and <>, if the value is not empty and can not be interpreted as a Number type or one of its subtypes and the property Search criteria = and <> must apply to whole cells is checked, comparison is against the entire cell contents, if unchecked, comparison is against any subpart of the field that matches the criteria. For = and <>, if the value is not empty and can not be interpreted as a Number type or one of its subtypes applies.
-
Other Text value. If the property Search criteria = and <> must apply to whole cells is true, the comparison is against the entire cell contents, if false, comparison is against any subpart of the field that matches the criteria. The expression can contain text, numbers, regular expressions or wildcards (if enabled in calculation options).
Oblast2 – nepovinné. Oblast2 a všechny následující mají stejný význam jako Oblast1.
Criterion2 – Optional. Criterion2 and all the following mean the same as Criterion.
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ý znak napsat znak \ nebo text uzavřít mezi \Q...\E. Vypnout a zapnout automatické vyhodnocování regulárních výrazů můžete v .
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.
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).
Tato funkce je součástí standardu Open Document Format for Office Applications (OpenDocument) verze 1.2 (ISO/IEC 26300:2-2015).
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
|
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.