
Splošna formula
(=SUM(--(MMULT(--(criteria),TRANSPOSE(COLUMN(data)^0))>=N)))
Povzetek
Če želite prešteti vrstice, ki vsebujejo določene vrednosti, lahko uporabite matrično formulo, ki temelji na funkcijah MMULT, TRANSPOSE, COLUMN in SUM. V prikazanem primeru je formula v K6:
(=SUM(--(MMULT(--((data)=2)))
kjer so podatki imenovani obseg C5: I14.
Upoštevajte, da je to matrična formula in jo je treba vnesti s tipko shift shift enter.
Pojasnilo
Logična merila, uporabljena v tej formuli, delujejo od znotraj navzven:
(data)<70
kjer so podatki imenovani obseg C5: I14. To ustvari rezultat TRUE / FALSE za vsako vrednost v podatkih, dvojni negativ pa prisili vrednosti TRUE FALSE na 1 in 0, da dobi matriko, kot je ta:
(0,0,0,1,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,1,0,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0)
Tako kot izvirni podatki je tudi ta matrika 10 vrstic s 7 stolpci (10 x 7) in gre v funkcijo MMULT kot matrika1 . Naslednji argument array2 se ustvari z:
TRANSPOSE(COLUMN(data)^0))
Tu se funkcija COLUMN uporablja kot način za generiranje številskega polja prave velikosti, saj množenje matrice zahteva, da je število stolpcev v matriki1 (7) enako številu vrstic v matriki2 .
Funkcija COLUMN vrne matriko s 7 stolpci (3,4,5,6,7,8,9). Če to matriko dvignemo na stopnjo nič, dobimo matriko 7 x 1, kot je (1,1,1,1,1,1,1,1), ki se TRANSPOSE spremeni v matriko 1 x 7 kot (1; 1 ; 1; 1; 1; 1; 1).
Nato MMULT zažene in vrne rezultat matrike 10 x 1 (2; 0; 0; 3; 0; 0; 0; 1; 0; 0), ki se obdela z logičnim izrazom> = 2, kar ima za posledico matriko TRUE FALSE vrednosti:
(TRUE; FALSE; FALSE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE).
Ponovno prisilimo TRUE FALSE na 1 in 0 z dvojnim negativom, da dobimo končno matriko znotraj SUM:
=SUM((1;0;0;1;0;0;0;0;0;0))
Kar pravilno vrne 2, število imen z vsaj dvema točkama pod 70.