COUNTIFS
Vrací počet buněk, které splňují kritéria z více oblastí.
Tato funkce je k dispozici od verze LibreOffice 4.0.
COUNTIFS(Range; Criterion[; Range2; Criterion2][; ... ; [Range127; Criterion127]])
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".
Range, Range2, ... and Criterion, Criterion2, ... must have the same size, otherwise the function returns err:502 - Invalid 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í
=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.