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

Általános képlet

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

Összegzés

A tartomány egyedi numerikus értékeinek megszámolásához használhatja a FREQUENCY, SUM és IF függvényeken alapuló képletet. A bemutatott példában az alkalmazottak száma a B5: B14 tartományban jelenik meg. A G6 képlete a következő:

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

ami 2-t ad vissza, mivel az A épületben 2 egyedi alkalmazói azonosító található.

Megjegyzés: ez egy tömbképlet, amelyet a Control + Shift + Enter billentyűkombinációval kell megadni, hacsak nem Excel 365-et használ.

Magyarázat

Megjegyzés: Az Excel 365 előtt az Excel nem rendelkezett külön funkcióval az egyedi értékek számolásához. Ez a képlet az egyedi értékek számlálásának egyetlen módját mutatja, amennyiben azok numerikusak. Ha van szövegértéke, vagy szövege és számai keverednek, akkor bonyolultabb képletet kell használnia.

Az Excel FREQUENCY függvény egy frekvenciaeloszlást ad vissza, amely egy összefoglaló táblázat, amely a számértékek gyakoriságát "kukákba" rendezve tartalmazza. Itt körforgalomként használjuk az egyedi numerikus értékek számlálására. A kritériumok alkalmazásához az IF függvényt használjuk.

Kívülről kifelé haladva először szűrjük az értékeket az IF funkcióval:

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

Ennek a műveletnek az eredménye egy ilyen tömb:

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

Figyelje meg, hogy a B épület minden azonosítója HAMIS. Ez a tömb közvetlenül a FREQUENCY függvénybe kerül, mint data_array . A bins_array számára maguk adják meg az azonosítókat:

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

Ezzel a konfigurációval a FREQUENCY visszaadja az alábbi tömböt:

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

Az eredmény kissé rejtélyes, de a jelentése: 905 négyszer, 773 pedig kétszer jelenik meg. A FALSE értékeket automatikusan figyelmen kívül hagyja.

A FREQUENCY rendelkezik egy olyan speciális funkcióval, amely automatikusan nullát ad vissza minden olyan számra, amely már megjelent az adattömbben, ezért az értékek nullaak, ha egy számra már sor került. Ez az a funkció, amely lehetővé teszi ezt a megközelítést.

Ezután mindegyik értéket nullánál nagyobbnak teszteljük:

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

Az eredmény egy ilyen tömb:

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

A listán szereplő IGAZ egyedi számot képvisel a listában, és csak össze kell adnunk az IGAZ értékeket a SUM értékkel. A SUM azonban nem ad össze logikai értékeket egy tömbben, ezért először 1-re vagy nullára kell kényszerítenünk az értékeket. Ez a kettős-negatív (-) értékkel történik. Az eredmény csak 1-es vagy 0-os tömb:

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

Végül a SUM összeadja ezeket az értékeket, és visszaadja az összeget, ami ebben az esetben 2.

Több kritérium

Kiterjesztheti a képletet, hogy több ilyen szempontot kezeljen:

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

Jó linkek

Mike Girvin Control-Shift-Enter könyve

érdekes cikkek...