Excel vzorec: Počítat jedinečné číselné hodnoty s kritérii -

Obecný vzorec

(=SUM(--(FREQUENCY(IF(criteria,values),values)>0)))

souhrn

Chcete-li spočítat jedinečné číselné hodnoty v rozsahu, můžete použít vzorec založený na funkcích FREQUENCY, SUM a IF. V zobrazeném příkladu se čísla zaměstnanců objevují v rozsahu B5: B14. Vzorec v G6 je:

=SUM(--(FREQUENCY(IF(C5:C14="A",B5:B14),B5:B14)>0))

který vrací 2, protože v budově A jsou 2 jedinečná ID zaměstnanců.

Poznámka: Toto je maticový vzorec a pokud nepoužíváte Excel 365, musíte jej zadat pomocí kláves Control + Shift + Enter.

Vysvětlení

Poznámka: Před Excel 365 neměl Excel vyhrazenou funkci pro počítání jedinečných hodnot. Tento vzorec ukazuje jeden způsob, jak počítat jedinečné hodnoty, pokud jsou číselné. Pokud máte textové hodnoty nebo kombinaci textu a čísel, budete muset použít složitější vzorec.

Funkce Excel FREQUENCY vrací rozdělení kmitočtů, což je souhrnná tabulka, která obsahuje četnost číselných hodnot uspořádaných do „přihrádek“. Zde jej používáme jako kruhový objezd k počítání jedinečných číselných hodnot. K uplatnění kritérií používáme funkci IF.

Při práci zevnitř ven nejprve filtrujeme hodnoty pomocí funkce IF:

IF(C5:C14="A",B5:B14) // filter on building A

Výsledkem této operace je pole jako toto:

(905;905;905;905;773;773;FALSE;FALSE;FALSE;FALSE)

Všimněte si, že všechna ID v budově B jsou nyní NEPRAVDA. Toto pole je dodáváno přímo do funkce FREQUENCY jako data_array . Pro pole bins_array dodáváme samotná ID:

FREQUENCY((905;905;905;905;773;773;FALSE;FALSE;FALSE;FALSE),(905;905;905;905;773;773;801;963;963;963))

S touto konfigurací vrátí FREQUENCY pole níže:

(4;0;0;0;2;0;0;0;0;0;0)

Výsledek je trochu záhadný, ale význam je 905 se objeví čtyřikrát a 773 se objeví dvakrát. FALSE hodnoty jsou automaticky ignorovány.

FREKVENCE má speciální funkci, která automaticky vrací nulu pro všechna čísla, která se již objevila v datovém poli, a proto jsou hodnoty nulové, jakmile dojde k číslu. Toto je funkce, která umožňuje tento přístup fungovat.

Dále je každá z těchto hodnot testována na hodnotu větší než nula:

(4;0;0;0;2;0;0;0;0;0;0)>0

Výsledkem je pole jako toto:

(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)

Každý PRAVDA v seznamu představuje jedinečné číslo v seznamu a my jen musíme přidat hodnoty PRAVDA s SUM. SUM však nesčítá logické hodnoty v poli, takže musíme nejprve vynutit vynucení hodnot na 1 nebo nulu. To se provádí dvojitým záporem (-). Výsledkem je pole pouze 1 nebo 0:

(1;0;0;0;1;0;0;0;0;0;0)

Nakonec SUM sečte tyto hodnoty a vrátí součet, který je v tomto případě 2.

Několik kritérií

Vzorec můžete rozšířit tak, aby zpracovával několik kritérií, jako je tato:

(=SUM(--(FREQUENCY(IF((criteria1)*(criteria2),values),values)>0)))

Dobré odkazy

Kniha Mika Girvina Control-Shift-Enter

Zajímavé články...