Excel-formel: Tell rader som inneholder spesifikke verdier -

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.

Gode ​​lenker

Stackoverflow svar av XOR LX

Interessante artikler...