Excel-formel: Tell celler som inneholder enten x eller y -

Generisk formel

=SUMPRODUCT(--((ISNUMBER(FIND("abc",rng)) + ISNUMBER(FIND("def",rng)))>0))

Sammendrag

For å telle celler som inneholder enten x eller y, kan du bruke en formel basert på SUMPRODUCT-funksjonen. I eksemplet vist er formelen i celle F5:

=SUMPRODUCT(--((ISNUMBER(FIND("abc",B5:B11))+ISNUMBER(FIND("def",B5:B11)))>0))

Dette er encelleformelløsningen, forklart nedenfor. Det er også mulig å bruke en enklere formel basert på en hjelpekolonne, også forklart nedenfor.

Forklaring

Når du teller celler med "ELLER logikk", må du være forsiktig så du ikke teller dobbelt. For eksempel, hvis du teller celler som inneholder "abc" eller "def", kan du ikke bare legge sammen to COUNTIF-funksjoner, fordi du kan dobbelt telle celler som inneholder både "abc" og "def".

Encellet løsning

For en enkelt formel kan du bruke SUMPRODUCT med ISNUMBER + FIND. Formelen i F5 er:

=SUMPRODUCT(--((ISNUMBER(FIND("abc",B5:B11)) + ISNUMBER(FIND("def",B5:B11)))>0))

Denne formelen er basert på formelen forklart her som lokaliserer tekst inne i en celle:

ISNUMBER(FIND("abc",B5:B11)

Når du får en rekke celler, returnerer denne kodebiten en matrise med SANNE / FALSE verdier, en verdi for hver celle i området. Siden vi bruker dette to ganger (en gang for "abc" og en gang for "def"), får vi to matriser.

Deretter legger vi til disse matriser sammen (med +), noe som skaper et nytt enkelt utvalg av tall. Hvert tall i denne matrisen er resultatet av å legge til SANNE og FALSE verdier i de to opprinnelige gruppene sammen. I eksemplet som vises ser den resulterende matrisen slik ut:

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

Vi må legge til disse tallene, men vi vil ikke doble teller. Så vi må sørge for at en verdi større enn null bare telles en gang. For å gjøre det tvinger vi alle verdier til SANN eller FALSK med "> 0", og tvinge deretter til 1/0 med dobbeltnegativet (-).

Til slutt returnerer SUMPRODUCT summen av alle verdiene i matrisen.

Hjelpesøyleløsning

Med en hjelpekolonne for å kontrollere hver celle individuelt, er problemet mindre komplekst. Vi kan bruke COUNTIF med to verdier (oppgitt som en "arraykonstant"). Formelen i C5 er:

=--(SUM(COUNTIF(B5,("*abc*","*def*")))>0)

COUNTIF returnerer en matrise som inneholder to elementer: en telling for "abc" og en telling for "def". For å forhindre dobbel telling, legger vi elementene opp og tvinger deretter resultatet til SANT / FALSK med "> 0". Til slutt konverterer vi de SANNE / FALSE verdiene til 1 og 0 med en dobbel negativ (-).

Det endelige resultatet er enten 1 eller 0 for hver celle. For å få en total for alle celler i området, summerer du bare hjelpekolonnen.

Interessante artikler...