Excel képlet: Számolja az egyedi szöveges értékeket a feltételekkel -

Tartalomjegyzék

Általános képlet

(=SUM(--(FREQUENCY(IF(criteria,MATCH(vals,vals,0)),ROW(vals)-ROW(vals.first)+1)>0)))

Összegzés

A tartomány egyedi szövegértékeinek és feltételekkel történő számlálásához használhatja a FREQUENCY és a MATCH függvényeken alapuló tömbképletet. A bemutatott példában a G6 képlete a következő:

(=SUM(--(FREQUENCY(IF(C5:C11=G5,MATCH(B5:B11,B5:B11,0)),ROW(B5:B11)-ROW(B5)+1)>0)))

ami 3-at ad vissza, mivel három különböző ember dolgozott az Omega projekten.

Megjegyzés: ez egy tömbképlet, amelyet a control + shift + enter billentyűkombinációval kell megadni.

Magyarázat

Ez egy összetett képlet, amely a FREQUENCY használatával számolja a MATCH függvényből származtatott numerikus értékeket. Belülről kifelé haladva a MATCH funkcióval megkapjuk az adatokban megjelenő értékek helyzetét:

MATCH(B5:B11,B5:B11,0)

A MATCH eredménye egy ilyen tömb:

(1;1;3;1;1;6;7)

Mivel a MATCH mindig az első egyezés pozícióját adja vissza, az adatokban többször megjelenő értékek ugyanazt a pozíciót adják vissza. Például, mivel a "Jim" négyszer jelenik meg a listában, ebben a tömbben négyszer jelenik meg 1-es számként.

A MATCH függvényen kívül az IF függvényt alkalmazzák a kritériumok alkalmazására, amely ebben az esetben magában foglalja annak tesztelését, hogy a projekt "omega"-e (a G5 cellából):

IF(C5:C11=G5 // filter on "omega"

Az IF funkció szűrőként működik, csak akkor engedi át a MATCH értékeit, ha "omega" -hoz vannak társítva. Az eredmény egy ilyen tömb:

(FALSE;FALSE;FALSE;1;1;6;7) // after filtering

A szűrt tömb közvetlenül a FREQUENCY függvénybe kerül, mint data_array argumentum. Ezután a ROW függvény segítségével sorozatos számlistát készítünk az adatok minden értékéhez:

ROW(B3:B12)-ROW(B3)+1

Ez egy ilyen tömböt hoz létre:

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

amely a SZŰRŐ bins_array argumentumává válik . Ezen a ponton:

FREQUENCY((FALSE;FALSE;FALSE;1;1;6;7),(1;2;3;4;5;6;7))

A FREQUENCY olyan tömböt ad vissza, amely az adat tömbben lévő értékek számát jelöli, bin szerint rendezve. Amikor egy számot már megszámláltak, a FREQUENCY nulla értéket ad vissza. A FREQUENCY eredménye egy ilyen tömb:

(2;0;0;0;0;1;1;0) // result from FREQUENCY

Megjegyzés: A FREQUENCY mindig egy tömböt ad vissza, amelyben egynél több elem van, mint a bins_array .

Ezen a ponton így írhatjuk át a képletet:

=SUM(--((2;0;0;0;0;1;1;0)>0))

Ellenőrizzük, hogy vannak-e nullánál nagyobb értékek, amelyek átalakítják a számokat IGAZ vagy HAMIS:

=SUM(--((TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE)))

Ezután kettős negatív segítségével kényszerítjük a logikai értékeket 1-re és 0-ra:

=SUM((1;0;0;0;0;1;1;0))

Végül a SUM függvény 3-at ad eredményül.

Megjegyzés: ez egy tömbképlet, amelyet a Control + Shift + Enter billentyűkombinációval kell megadni.

Üres cellák kezelése a tartományban

Ha a tartomány bármely cellája üres, akkor ki kell igazítania a képletet, hogy megakadályozza az üres cellák átadását a MATCH függvényben, ami hibát okoz. Ezt megteheti egy másik beágyazott IF függvény hozzáadásával, hogy ellenőrizze az üres cellákat:

(=SUM(--(FREQUENCY(IF(B5:B11"",IF(C5:C11=G5,MATCH(B5:B11,B5:B11,0))),ROW(B5:B11)-ROW(B5)+1)>0)))

Két kritériummal

Ha két kritériuma van, kibővítheti a képlet logikáját egy másik beágyazott IF hozzáadásával:

(=SUM(--(FREQUENCY(IF(c1,IF(c2,MATCH(vals,vals,0))),ROW(vals)-ROW(vals.1st)+1)>0)))

Ahol c1 = kritérium1, c2 = kritérium2 és vals = az értéktartomány.

Logikai logikával

A logikai logikával csökkentheti a beágyazott IF-ket:

(=SUM(--(FREQUENCY(IF((criteria1)*(criteria2),MATCH(vals,vals,0)),ROW(vals)-ROW(vals.1st)+1)>0)))

Ez megkönnyíti a további feltételek hozzáadását és kezelését.

Jó linkek

Mike Girvin Control-Shift-Enter könyve

érdekes cikkek...