Formula Excel: Numărați valorile unice ale textului într-un interval -

Cuprins

Formula generică

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

rezumat

Pentru a număra valorile unice ale textului într-un interval, puteți utiliza o formulă care utilizează mai multe funcții: FRECVENȚĂ, MATCH, ROW și SUMPRODUCT. În exemplul prezentat, formula din F5 este:

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

care returnează 4, deoarece există 4 nume unice în B5: B14.

Notă: Un alt mod de a număra valori unice este utilizarea funcției COUNTIF. Aceasta este o formulă mult mai simplă, dar poate rula încet pe seturi de date mari. Cu Excel 365, puteți utiliza o formulă mai simplă și mai rapidă bazată pe UNIQUE.

Explicaţie

Această formulă este mai complicată decât o formulă similară care folosește FREQUENCY pentru a număra valori numerice unice, deoarece FREQUENCY nu funcționează cu valori non-numerice. Ca rezultat, o mare parte a formulei transformă pur și simplu datele non-numerice în date numerice pe care FRECVENȚA le poate gestiona.

Funcționând din interior spre exterior, funcția MATCH este utilizată pentru a obține poziția fiecărui element care apare în date:

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

Rezultatul de la MATCH este o matrice ca aceasta:

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

Deoarece MATCH returnează întotdeauna poziția primei potriviri, valorile care apar de mai multe ori în date returnează aceeași poziție. De exemplu, deoarece „Jim” apare de 3 ori în listă, apare în această matrice de 3 ori ca numărul 1.

Această matrice este introdusă în FREQUENCY ca argument data_array . Bins_array Argumentul este construit din această parte a formulei:

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

care construiește o listă secvențială de numere pentru fiecare valoare din date:

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

În acest moment, FREQUENCY este configurat astfel:

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

FREQUENCY returnează o matrice de numere care indică un număr pentru fiecare număr din matricea de date, organizat după bin. Când un număr a fost deja numărat, FREQUENCY va reveni la zero. Aceasta este o caracteristică cheie în funcționarea acestei formule. Rezultatul din FREQUENCY este o matrice ca aceasta:

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

Notă: FREQUENCY returnează întotdeauna o matrice cu încă un articol decât bins_array .

Acum putem rescrie formula astfel:

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

Apoi, verificăm valori mai mari decât zero (> 0), care convertește numerele în ADEVĂRAT sau FALS, apoi folosim un negativ dublu (-) pentru a converti valorile ADEVĂRATE și FALSE la 1s și 0s. Acum avem:

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

În cele din urmă, SUMPRODUCT pur și simplu adaugă numerele și returnează totalul, care în acest caz este 4.

Manipularea celulelor goale

Celulele goale din interval vor determina formula să returneze o eroare # N / A. Pentru a gestiona celulele goale, puteți utiliza o formulă de matrice mai complicată care utilizează funcția IF pentru a filtra valorile goale:

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

Notă: adăugarea IF face acest lucru într-o formulă matrice care necesită control-shift-enter.

Pentru mai multe informații, consultați această pagină.

Alte modalități de numărare a valorilor unice

Dacă aveți Excel 365, puteți utiliza funcția UNIQUE pentru a număra valori unice cu o formulă mult mai simplă.

Un tabel pivot este, de asemenea, un mod excelent de a număra valori unice.

Legături bune

Cartea lui Mike Girvin Control-Shift-Enter

Articole interesante...