
Generisk formel
=SUM(--(MMULT(--(criteria),TRANSPOSE(COLUMN(data)))>0))
Sammendrag
For å telle rader som inneholder spesifikke verdier, kan du bruke en matriseformel basert på funksjonene MMULT, TRANSPOSE, COLUMN og SUM. I eksemplet vist er formelen i G5:
(=SUM(--(MMULT(--(data=90),TRANSPOSE(COLUMN(data)))>0)))
der data er det navngitte området B4: B12.
Merk: dette er en matriseformel og må angis med kontrollskift.
Forklaring
Arbeidet fra innsiden og ut, de logiske kriteriene som brukes i denne formelen er:
--(data=90)
der data er det navngitte området B4: D12. Dette genererer et SANT / FALSE-resultat for hver verdi i data, og det dobbelte negative tvinger de SANNE FALSE-verdiene til 1 og 0 for å gi en matrise som dette:
(1,0,0;0,0,0;0,1,1;1,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,1)
I likhet med de opprinnelige dataene er denne matrisen 9 rader med 3 kolonner (9 x 3) og går inn i MMULT-funksjonen som array1 .
Array2 er avledet med:
TRANSPOSE(COLUMN(data))
Dette er den vanskelige og morsomme delen av denne formelen. COLUMN-funksjonen brukes bare for enkelhets skyld som en måte å generere et numerisk utvalg av riktig størrelse. For å utføre matriksmultiplikasjon med MMULT, må kolonnetallet i matrise1 (3) være lik radantallet i matrise2 .
KOLONN returnerer matrisen med 3 kolonner (2,3,4), og TRANSPOSE endrer denne matrisen til 3-rad matrisen (2; 3; 4). MMULT kjører og returnerer et 9 x 1 array-resultat:
=SUM(--((2;0;7;2;0;0;0;0;4)>0))
Vi ser etter oppføringer som ikke er null med> 0 og igjen tvinger SANN FALSE til 1 og 0 med et dobbelt negativt for å få en endelig matrise inne i SUM:
=SUM((1;0;1;1;0;0;0;0;1))
I denne siste matrisen representerer en 1 en rad der den logiske testen (data = 90) returnerte sant. Summen som returneres av SUM er et antall av alle rader som inneholder tallet 90.
Bokstavelig inneholder
Hvis du trenger å se etter spesifikke tekstverdier, med andre ord, bokstavelig talt sjekke for å se om celler inneholder visse tekstverdier, kan du endre logikken i formelen på denne siden for å bruke ISNUMBER og SEARCH-funksjonen. For eksempel, for å telle celler / rader som inneholder "apple" kan du bruke:
=ISNUMBER(SEARCH("apple",data))
Detaljer om hvordan denne formelen fungerer her.