COUNTIFS
Vrací počet buněk, které splňují kritéria z více oblastí.
Tato funkce je k dispozici od verze LibreOfficeDev 4.0.
COUNTIFS(Oblast1; Kritérium[; Oblast2; Kritérium2][; ... ; [Oblast127; Kritérium127]])
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, Oblast2, ... a Kritérium1, Kritérium2, ... musí mít stejnou 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ží
|
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í
=COUNTIFS(B2:B6;">=20")
Zjistí počet řádků z oblasti B2:B6 s hodnotami většími nebo rovnými 20. Vrátí 3, protože pátý a šestý řádek kritérium nesplňují.
=COUNTIFS(B2:B6;">=20";C2:C6;">70")
Zjistí počet řádků, které obsahují hodnoty větší než 70 z oblasti C2:C6 a zároveň hodnoty větší než nebo rovné 20 z oblasti B2:B6. Vrátí 2, protože druhý, pátý a šestý řádek aspoň jedno z kritérií nesplňují.
Použití regulárních výrazů a vnořených funkcí
Aby tyto příklady fungovaly tak, jak jsou popsány, je nezbytné zaškrtnout Povolit regulární výrazy ve vzorcích v .
=COUNTIFS(B2:B6;"[:alpha:]*")
Zjistí počet řádků z oblasti B2:B6, které obsahují pouze znaky abecedy. Vrátí 1, protože kritérium splňuje pouze šestý řádek.
=COUNTIFS(B2:B6;">"&MIN(B2:B6);B2:B6;"<"&MAX(B2:B6))
Zjistí počet řádků z oblasti B2:B6 bez řádků s minimální a maximální hodnotou. Vrátí 2, protože třetí, pátý a šestý řádek aspoň jedno z kritérií nesplňují.
=COUNTIFS(A2:A6;"nůž.*";B2:B6;"<"&MAX(B2:B6))
Zjistí počet řádků, 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í 1, 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 COUNTIFS. Například výše uvedenou funkci lze přepsat následovně:
=COUNTIFS(A2:A6;E2&".*";B2:B6;"<"&MAX(B2:B6))
Pokud E2 = nůž, funkce vrátí 1, protože odkaz na buňku je nahrazen jejím obsahem a funkce se chová jako v předchozím příkladu.