MAXIFS funkce
Vrátí maximální hodnotu z buněk z oblasti, která splňuje více kritérií z více oblastí.
MAXIFS(Oblast; Oblast1; Kritérium [; Oblast2; Kritérium2][; ... ; [Oblast127; Kritérium127]])
Oblast_funkce – 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 maxima.
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:
-
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.
Poznámka: "=0" neodpovídá prázdným buňkám.
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.
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 .
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).
Uvažujme následující tabulku
|
A
|
B
|
C
|
1
|
Název zboží
|
Sales
|
Revenue
|
2
|
nůžky
|
20
|
65
|
3
|
nůž
|
35
|
85
|
4
|
poznámkový blok
|
20
|
190
|
5
|
známka
|
17
|
180
|
6
|
pencil-case
|
not
|
not
|
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í
=MAXIFS(B2:B6;B2:B6;"<35")
Vypočítá maximální hodnotu z oblasti B2:B6, které jsou větší nebo rovny 20. Vrátí 35. Pátý řádek kritérium nesplňuje.
=MAXIFS(C2:C6;B2:B6;">=20";C2:C6;"<90")
Vypočítá maximální hodnotu z oblasti C2:C6, které jsou nižší než 90 a odpovídají buňkám oblasti B2:B6 s hodnotami většími nebo rovno 20. Vrátí 85, protože čtvrtý a pátý řádek nesplňují alespoň jednu kritérium.
Použití regulárních výrazů a vnořených funkcí
=MAXIFS(C2:C6;B2:B6;">"&MIN(B2:B6);B2:B6;"<"&MAX(B2:B6))
Vypočítá maximální hodnotu z oblasti C2:C6, které odpovídají všem hodnotám rozsahu B2:B6 s výjimkou minima a maxima. Vrací 190, protože pouze čtvrtý řádek splňuje kritéria.
=MAXIFS(C2:C6;A2:A6;"nůž.*";B2:B6;"<="&MAX(B2:B6))
Vypočítá maximální hodnotu z oblasti C2:C6, které odpovídají všem buňkám oblasti A2:A6 začínajícím "nůž" a všem buňkám rozsahu B2:B6 s výjimkou jeho maxima. Vrací 85, protože pouze třetí řádek splňuje všechna kritéria.
Odkaz na buňku jako kritérium
Pokud potřebujete snadno změnit kritérium, můžete jej určit v samostatné buňce a použít odkaz na tuto buňku v podmínce funkce MAXIFS. Například výše uvedená funkce může být změněna následovně:
=MAXIFS(C2:C6;A2:A6;E2&".*";B2:B6;"<"&MAX(B2:B6))
If E2 = "nůž", funkce vrátí 65, protože odkaz na buňku je nahrazen jejím obsahem.
Tato funkce je k dispozici od verze LibreOfficeDev 5.2.
Tato funkce není součástí standardu Open Document Format for Office Applications (OpenDocument) Version 1.3. Part 4: Recalculated Formula (OpenFormula) Format. Její jmenný prostor je
COM.MICROSOFT.MAXIFS