Excel vzorec: Spočítat jedinečné textové hodnoty v rozsahu -

Obsah

Obecný vzorec

=SUMPRODUCT(--(FREQUENCY(MATCH(data,data,0),ROW(data)-ROW(data.firstcell)+1)>0))

souhrn

Chcete-li spočítat jedinečné textové hodnoty v rozsahu, můžete použít vzorec, který používá několik funkcí: FREQUENCY, MATCH, ROW a SUMPRODUCT. V zobrazeném příkladu je vzorec v F5:

=SUMPRODUCT(--(FREQUENCY(MATCH(B5:B14,B5:B14,0),ROW(B5:B14)-ROW(B5)+1)>0))

který vrací 4, protože v B5 jsou 4 jedinečná jména: B14.

Poznámka: Dalším způsobem, jak spočítat jedinečné hodnoty, je použití funkce COUNTIF. Toto je mnohem jednodušší vzorec, ale na velkých souborech dat může běžet pomalu. S Excel 365 můžete použít jednodušší a rychlejší vzorec založený na UNIQUE.

Vysvětlení

Tento vzorec je složitější než podobný vzorec, který používá FREQUENCY k počítání jedinečných číselných hodnot, protože FREQUENCY nefunguje s nečíselnými hodnotami. Výsledkem je, že velká část vzorce jednoduše transformuje nečíselná data na numerická data, která FREQUENCY zvládne.

Při práci zevnitř ven se funkce MATCH používá k získání polohy každé položky, která se objeví v datech:

MATCH(B5:B14,B5:B14,0)

Výsledkem MATCH je pole jako toto:

(1;1;1;4;4;6;6;6;9;9)

Protože MATCH vždy vrátí pozici první shody, hodnoty, které se v datech objeví více než jednou, vrátí stejnou pozici. Například protože „Jim“ se v seznamu objeví třikrát, zobrazí se v tomto poli třikrát jako číslo 1.

Toto pole se přivádí do FREQUENCY jako argument data_array . Argument bins_array je sestaven z této části vzorce:

ROW(B5:B14)-ROW(B5)+1)

který vytváří sekvenční seznam čísel pro každou hodnotu v datech:

(1;2;3;4;5;6;7;8;9;10)

V tomto okamžiku je FREQUENCY nakonfigurována takto:

FREQUENCY((1;1;1;4;4;6;6;6;9;9),(1;2;3;4;5;6;7;8;9;10))

FREQUENCY vrací pole čísel, které označuje počet pro každé číslo v datovém poli, uspořádané podle bin. Pokud již bylo číslo spočítáno, FREQUENCY vrátí nulu. Toto je klíčová vlastnost fungování tohoto vzorce. Výsledkem FREQUENCY je pole jako toto:

(3;0;0;2;0;3;0;0;2;0;0) // output from FREQUENCY

Poznámka: FREQUENCY vždy vrátí pole s jednou další položkou než bins_array .

Nyní můžeme vzorec přepsat takto:

=SUMPRODUCT(--((3;0;0;2;0;3;0;0;2;0;0)>0))

Dále zkontrolujeme hodnoty větší než nula (> 0), které převede čísla na TRUE nebo FALSE, a pak pomocí dvojitého záporného čísla (-) převedeme hodnoty TRUE a FALSE na 1 s a 0 s. Nyní máme:

=SUMPRODUCT((1;0;0;1;0;1;0;0;1;0;0))

Nakonec SUMPRODUCT jednoduše sčítá čísla a vrátí součet, který je v tomto případě 4.

Zpracování prázdných buněk

Prázdné buňky v rozsahu způsobí, že vzorec vrátí chybu # N / A. Chcete-li zpracovat prázdné buňky, můžete použít složitější vzorec pole, který k odfiltrování prázdných hodnot používá funkci IF:

(=SUM(IF(FREQUENCY(IF(data"", MATCH(data,data,0)),ROW(data)-ROW(data.firstcell)+1),1)))

Poznámka: přidání IF způsobí, že toto bude do maticového vzorce, který vyžaduje control-shift-enter.

Další informace najdete na této stránce.

Jiné způsoby počítání jedinečných hodnot

Pokud máte Excel 365, můžete pomocí funkce JEDINEČNÉ spočítat jedinečné hodnoty s mnohem jednodušším vzorcem.

Kontingenční tabulka je také vynikající způsob, jak počítat jedinečné hodnoty.

Dobré odkazy

Kniha Mika Girvina Control-Shift-Enter

Zajímavé články...