Excel: tæller celler, der indeholder specifik tekst (nøjagtigt og delvist match)

  • Del Dette
Michael Brown

Denne vejledning viser, hvordan du tæller antallet af celler med en bestemt tekst i Excel. Du finder eksempler på formler for nøjagtig match, delvis match og filtrerede celler.

I sidste uge så vi på, hvordan du tæller celler med tekst i Excel, dvs. alle celler med tekst. Når du analyserer store informationsmængder, vil du måske også gerne vide, hvor mange celler der indeholder specifik tekst. Denne vejledning forklarer, hvordan du gør det på en enkel måde.

    Sådan tæller du celler med specifik tekst i Excel

    Microsoft Excel har en særlig funktion til betinget optælling af celler, nemlig funktionen COUNTIF. Det eneste du skal gøre er at angive måltekststrengen i kriterier argument.

    Her er en generisk Excel-formel til at tælle antallet af celler, der indeholder en bestemt tekst:

    COUNTIF(interval, " tekst ")

    Følgende eksempel viser det i praksis: Antag, at du har en liste over emne-id'er i A2:A10, og du vil tælle antallet af celler med et bestemt id, f.eks. "AA-01". Indtast denne streng i det andet argument, og du får denne enkle formel:

    =COUNTIF(A2:A10, "AA-01")

    Hvis du vil give dine brugere mulighed for at tælle celler med en given tekst uden at skulle ændre formlen, skal du indtaste teksten i en foruddefineret celle, f.eks. D1, og angive cellereferencen:

    =COUNTIF(A2:A10, D1)

    Bemærk. Excel COUNTIF-funktionen er skift mellem store og små bogstaver Hvis du vil behandle store og små bogstaver forskelligt, skal du bruge denne formel, der tager hensyn til store og små bogstaver.

    Sådan tæller du celler med en bestemt tekst (delvis match)

    Den formel, der blev diskuteret i det foregående eksempel, passer nøjagtigt til kriterierne. Hvis der er mindst ét andet tegn i en celle, f.eks. et ekstra mellemrum i slutningen, vil det ikke være et nøjagtigt match, og en sådan celle vil ikke blive talt med.

    Hvis du vil finde antallet af celler, der indeholder en bestemt tekst som en del af deres indhold, skal du bruge jokertegn i dine kriterier, nemlig en stjerne (*), der repræsenterer en hvilken som helst sekvens eller tegn. Afhængigt af dit mål kan en formel se ud som en af følgende.

    Tæl celler, der indeholder specifik tekst på den meget start :

    COUNTIF(interval, " tekst *")

    Tælle celler, der indeholder en bestemt tekst i enhver stilling :

    COUNTIF(interval, "* tekst *")

    Hvis du f.eks. vil finde ud af, hvor mange celler i intervallet A2:A10 der begynder med "AA", skal du bruge denne formel:

    =COUNTIF(A2:A10, "AA*")

    For at få tallet af celler, der indeholder "AA" i en hvilken som helst position, skal du bruge denne:

    =COUNTIF(A2:A10, "*AA*")

    Hvis du vil gøre formlerne mere dynamiske, kan du erstatte de hardkodede strenge med cellehenvisninger.

    Sådan tæller du celler, der begynder med en bestemt tekst:

    =COUNTIF(A2:A10, D1& "*")

    Sådan tæller du celler med en bestemt tekst et sted i dem:

    =COUNTIF(A2:A10, "*"&D1&"*")

    Skærmbilledet nedenfor viser resultaterne:

    Tæl celler, der indeholder en bestemt tekst (skelner mellem store og små bogstaver)

    I situationer, hvor du skal skelne mellem store og små bogstaver, vil COUNTIF-funktionen ikke fungere. Afhængigt af, om du søger et nøjagtigt eller delvist match, skal du lave en anden formel.

    Formel, der tager hensyn til store og små bogstaver, til at tælle celler med specifik tekst (nøjagtigt match)

    For at tælle antallet af celler med en bestemt tekst, der genkender tekstboksen, bruger vi en kombination af funktionerne SUMPRODUCT og EXACT:

    SUMPRODUCT(--EXACT(" tekst ", rækkevidde ))

    Sådan fungerer denne formel:

    • EXACT sammenligner hver celle i intervallet med eksempelteksten og returnerer et array af værdierne TRUE og FALSE, hvor TRUE repræsenterer nøjagtige match og FALSE alle andre celler. En dobbelt bindestreg (kaldet en dobbelt unary ) tvinger TRUE og FALSE til at blive til 1'er og 0'er.
    • SUMPRODUCT summerer alle elementerne i arrayet. Summen er antallet af 1'er, hvilket er antallet af matches.

    Du kan f.eks. bruge denne formel for at få antallet af celler i A2:A10, der indeholder teksten i D1, og som håndterer store og små bogstaver som forskellige tegn:

    =SUMPRODUCT(--EXACT(D1, A2:A10))

    Formel, der tager hensyn til store og små bogstaver, til at tælle celler med specifik tekst (delvis match)

    For at opbygge en formel, der tager hensyn til store og små bogstaver, og som kan finde en tekststreng af interesse hvor som helst i en celle, bruger vi 3 forskellige funktioner:

    SUMPRODUCT(--(ISNUMBER(FIND(" tekst ", rækkevidde ))))

    Sådan fungerer denne formel:

    • FIND-funktionen søger efter målteksten i hver celle i området. Hvis det lykkes, returnerer funktionen positionen for det første tegn, ellers returneres fejlen #VALUE! For klarhedens skyld behøver vi ikke at kende den nøjagtige position, ethvert tal (i modsætning til en fejl) betyder, at cellen indeholder målteksten.
    • Funktionen ISNUMBER håndterer arrayet af tal og fejl, der returneres af FIND, og konverterer tallene til TRUE og alt andet til FALSE. En dobbelt unary (--) tvinger de logiske værdier til at blive til ettere og nuller.
    • SUMPRODUCT summerer arrayet af 1'er og 0'er og returnerer antallet af celler, der indeholder den angivne tekst som en del af deres indhold.

    For at teste formlen på virkelige data skal vi finde ud af, hvor mange celler i A2:A10 der indeholder den delstreng, der er indtastet i D1:

    =SUMPRODUCT(--(ISNUMBER(FIND(D1, A2:A10))))

    Og dette giver et antal på 3 (cellerne A2, A3 og A6):

    Sådan tæller du filtrerede celler med specifik tekst

    At tælle synlige elementer i en filtreret liste skal du bruge en kombination af 4 eller flere funktioner, afhængigt af om du ønsker et nøjagtigt eller delvist match. For at gøre eksemplerne lettere at følge, skal vi først se på kildedataene.

    Hvis vi antager, at du har en tabel med Ordre-id'er i kolonne B og Antal i kolonne C som vist i billedet nedenfor. I øjeblikket er du kun interesseret i mængder større end 1, og du har filtreret din tabel i overensstemmelse hermed. Spørgsmålet er - hvordan tæller du filtrerede celler med et bestemt id?

    Formel til at tælle filtrerede celler med specifik tekst (nøjagtigt match)

    Hvis du vil tælle de filtrerede celler, hvis indhold svarer nøjagtigt til tekststrengen i prøven, skal du bruge en af følgende formler:

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(B2:B10=F1))

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(B2:B10=F1)))

    Hvor F1 er eksempelteksten, og B2:B10 er de celler, der skal tælles.

    Hvordan disse formler fungerer:

    I begge formler foretages der to kontroller:

    1. Identificer synlige og skjulte rækker. Til dette formål bruger du funktionen SUBTOTAL med funktion_nummer argumentet er sat til 103. For at levere alle de individuelle cellehenvisninger til SUBTOTAL skal du bruge enten INDIRECT (i den første formel) eller en kombination af OFFSET, ROW og MIN (i den anden formel). Da vi har til formål at finde synlige og skjulte rækker, er det egentlig ligegyldigt, hvilken kolonne der skal refereres til (A i vores eksempel). Resultatet af denne operation er et array af 1'er og 0'er, hvor 1'er repræsenterer synlige og skjulte rækker.rækker og nuller - skjulte rækker.
    2. Find celler, der indeholder en given tekst. Sammenlign prøveeksemplet tekst (F1) med området af celler (B2:B10). Resultatet af denne operation er et array af værdierne TRUE og FALSE, som er tvunget til at være 1'er og 0'er ved hjælp af den dobbelte unære operatør.

    Endelig multiplicerer funktionen SUMPRODUCT elementerne i de to arrays på de samme positioner og summerer derefter det resulterende array. Da multiplikation med nul giver nul, er det kun de celler, der har 1 i begge arrays, der har 1 i det endelige array. Summen af 1'er er er antallet af filtrerede celler, der indeholder den angivne tekst.

    Formel til at tælle filtrerede celler med specifik tekst (delvis match)

    Hvis du vil tælle filtrerede celler, der indeholder en bestemt tekst som en del af celleindholdet, skal du ændre ovenstående formler på følgende måde: I stedet for at sammenligne prøveeksemplets tekst med celleområdet skal du søge efter målteksten ved hjælp af ISNUMBER og FIND som forklaret i et af de foregående eksempler:

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(ISNUMBER(FIND(F1, B2:B10))))

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1))), --(ISNUMBER(FIND(F1, B2:B10))))

    Resultatet er, at formlerne vil finde en given tekststreng i en hvilken som helst position i en celle:

    Bemærk. Funktionen SUBTOTAL med 103 i funktion_nummer argumentet identificerer alle skjulte celler, der er filtreret ud og skjult manuelt. Som resultat tæller ovenstående formler kun synlige celler uanset hvor usynlige celler der er skjult. Hvis du kun vil udelukke de celler, der er filtreret ud, men inkludere dem, der er skjult manuelt, skal du bruge 3 for funktion_nummer .

    Sådan tæller du antallet af celler med en bestemt tekst i Excel. Jeg takker for din læsning og håber at se dig på vores blog i næste uge!

    Tilgængelige downloads

    Excel-formler til at tælle celler med en bestemt tekst

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.