
Generisk formel
(=SUM(--(MMULT(--(criteria),TRANSPOSE(COLUMN(data)^0))>=N)))
Sammanfattning
För att räkna rader som innehåller specifika värden kan du använda en matrisformel baserad på funktionerna MMULT, TRANSPOSE, COLUMN och SUM. I exemplet som visas är formeln i K6:
(=SUM(--(MMULT(--((data)=2)))
där data är det namngivna området C5: I14.
Observera att detta är en matrisformel och måste anges med kontrollskiftet.
Förklaring
Arbetar inifrån och ut, de logiska kriterierna som används i denna formel är:
(data)<70
där data är det namngivna området C5: I14. Detta genererar ett SANT / FALSKT resultat för varje värde i data, och det dubbla negativet tvingar de Sanna FALSKA värdena till 1 och 0 för att ge en matris så här:
(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)
Liksom originaldata är denna matris 10 rader med 7 kolumner (10 x 7) och går in i MMULT-funktionen som array1 . Nästa argument, array2 skapas med:
TRANSPOSE(COLUMN(data)^0))
Här används COLUMN-funktionen som ett sätt att generera en numerisk array med rätt storlek, eftersom matrixmultiplikation kräver kolumneräkningen i array1 (7) för att motsvara radantalet i array2 .
Funktionen COLUMN returnerar matrisen med 7 kolumner (3,4,5,6,7,8,9). Genom att höja denna array till en effekt på noll, slutar vi med en 7 x 1 array som (1,1,1,1,1,1,1), som TRANSPOSE ändras till en 1 x 7 array som (1; 1 ; 1; 1; 1; 1; 1).
MMULT kör sedan och returnerar ett 10 x 1 matrisresultat (2; 0; 0; 3; 0; 0; 0; 1; 0; 0), vilket bearbetas med det logiska uttrycket> = 2, vilket resulterar i en matris med SANT FALSE värden:
(SANN; FALSK; FALSK; SANT; FALSK; FALSK; FALSK; FALSK; FALSK; FALSK).
Vi tvingar igen TRUE FALSE till 1 och 0 med en dubbel negativ för att få en slutlig array i SUM:
=SUM((1;0;0;1;0;0;0;0;0;0))
Som korrekt returnerar 2, antalet namn med minst 2 poäng under 70.