Formula Excel: Numărați valori numerice unice cu criterii -

Formula generică

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

rezumat

Pentru a număra valori numerice unice într-un interval, puteți utiliza o formulă bazată pe funcțiile FRECVENȚĂ, SUMĂ și IF. În exemplul prezentat, numărul angajaților apare în intervalul B5: B14. Formula din G6 este:

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

care returnează 2, deoarece există 2 coduri unice de angajați în clădirea A.

Notă: aceasta este o formulă matrice și trebuie introdusă cu control + shift + enter, cu excepția cazului în care utilizați Excel 365.

Explicaţie

Notă: Înainte de Excel 365, Excel nu avea o funcție dedicată de numărare a valorilor unice. Această formulă arată o modalitate unică de a număra valori unice, atâta timp cât acestea sunt numerice. Dacă aveți valori de text sau un amestec de text și numere, va trebui să utilizați o formulă mai complicată.

Funcția Excel FREQUENCY returnează o distribuție a frecvenței, care este un tabel rezumat care conține frecvența valorilor numerice, organizate în „coșuri”. Îl folosim aici ca un mod giratoriu de a număra valori numerice unice. Pentru a aplica criterii, folosim funcția IF.

Lucrând din interior spre exterior, filtrăm mai întâi valorile cu funcția IF:

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

Rezultatul acestei operații este un tablou de genul acesta:

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

Observați că toate codurile din clădirea B sunt acum FALSE. Această matrice este livrată direct funcției FREQUENCY ca data_array . Pentru bins_array , furnizăm singuri ID-urile:

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

Cu această configurație, FREQUENCY returnează matricea de mai jos:

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

Rezultatul este puțin criptic, dar sensul este 905 apare de patru ori, iar 773 apare de două ori. Valorile FALSE sunt ignorate automat.

FREQUENCY are o caracteristică specială care returnează automat zero pentru orice numere care au apărut deja în matricea de date, motiv pentru care valorile sunt zero după ce a fost întâlnit un număr. Aceasta este caracteristica care permite această abordare să funcționeze.

Apoi, fiecare dintre aceste valori este testată pentru a fi mai mare decât zero:

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

Rezultatul este o matrice ca aceasta:

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

Fiecare ADEVĂRAT din listă reprezintă un număr unic în listă și trebuie doar să adăugăm valorile ADEVĂRATE cu SUM. Cu toate acestea, SUM nu va adăuga valori logice într-o matrice, deci trebuie mai întâi să constrângem valorile în 1 sau zero. Acest lucru se face cu negativul dublu (-). Rezultă o matrice de doar 1 sau 0:

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

În cele din urmă, SUM adaugă aceste valori și returnează totalul, care în acest caz este 2.

Criterii multiple

Puteți extinde formula pentru a gestiona mai multe criterii ca aceasta:

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

Legături bune

Cartea lui Mike Girvin Control-Shift-Enter

Articole interesante...