Excel: räkna celler som innehåller specifik text (exakt och partiell matchning)

  • Dela Detta
Michael Brown

I handledningen visas hur man räknar antalet celler med viss text i Excel. Du hittar exempel på formler för exakt matchning, partiell matchning och filtrerade celler.

Förra veckan tittade vi på hur du räknar celler med text i Excel, dvs. alla celler med text. När du analyserar stora informationsmängder kanske du också vill veta hur många celler som innehåller specifik text. Den här handledningen förklarar hur du gör det på ett enkelt sätt.

    Hur du räknar celler med specifik text i Excel

    Microsoft Excel har en särskild funktion för att räkna celler på villkor, COUNTIF-funktionen. Allt du behöver göra är att ange måltextsträngen i kriterier argument.

    Här är en generisk Excel-formel för att räkna antalet celler som innehåller specifik text:

    COUNTIF(intervall, " text ")

    Följande exempel visar hur det fungerar. Antag att du har en lista med artikel-ID:n i A2:A10 och att du vill räkna antalet celler med ett visst ID, till exempel "AA-01". Skriv in denna sträng i det andra argumentet och du får den här enkla formeln:

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

    Om du vill att användarna ska kunna räkna celler med en viss text utan att behöva ändra formeln, anger du texten i en fördefinierad cell, till exempel D1, och anger cellreferensen:

    =COUNTIF(A2:A10, D1)

    Observera: Excel-funktionen COUNTIF är Skiftlägeskänslig Om du vill behandla stora och små bokstäver på olika sätt använder du den här formeln som tar hänsyn till stor- och små bokstäver.

    Hur man räknar celler med viss text (partiell matchning)

    Formeln som vi diskuterade i det föregående exemplet matchar kriterierna exakt. Om det finns minst ett annat tecken i en cell, till exempel ett extra mellanslag i slutet, är det inte en exakt matchning och cellen räknas inte.

    Om du vill hitta antalet celler som innehåller en viss text som en del av innehållet använder du jokertecken i dina kriterier, dvs. en asterisk (*) som representerar vilken sekvens eller vilka tecken som helst. Beroende på vad du vill uppnå kan en formel se ut på något av följande sätt.

    Räkna celler som innehåller en specifik text i mycket början :

    COUNTIF(intervall, " text *")

    Räkna celler som innehåller viss text i alla positioner :

    COUNTIF(intervall, "* text *")

    Om du till exempel vill ta reda på hur många celler i intervallet A2:A10 som börjar med "AA" använder du den här formeln:

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

    För att få fram antalet celler som innehåller "AA" i vilken position som helst, använd den här metoden:

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

    För att göra formlerna mer dynamiska kan du ersätta de hårdkodade strängarna med cellreferenser.

    Om du vill räkna celler som börjar med en viss text:

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

    Räkna celler med viss text någonstans i dem:

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

    Skärmbilden nedan visar resultatet:

    Räkna celler som innehåller specifik text (skiftlägeskänslig)

    Om du behöver skilja mellan stora och små bokstäver fungerar inte COUNTIF-funktionen. Beroende på om du vill ha en exakt eller partiell matchning måste du skapa en annan formel.

    Formler som tar hänsyn till stora och små bokstäver för att räkna celler med specifik text (exakt matchning)

    För att räkna antalet celler med viss text som känner igen textfältet använder vi en kombination av funktionerna SUMPRODUCT och EXACT:

    SUMPRODUKT(--EXAKT(" text ", sortiment ))

    Hur denna formel fungerar:

    • EXACT jämför varje cell i intervallet med exempeltexten och returnerar en array av värden TRUE och FALSE, där TRUE representerar exakta överensstämmelser och FALSE alla andra celler. Ett dubbelt bindestreck (som kallas ett dubbelt unary ) omvandlar TRUE och FALSE till 1:or och 0:or.
    • SUMPRODUCT summerar alla element i matrisen. Summan är antalet 1:or, vilket är antalet matchningar.

    Om du till exempel vill få fram antalet celler i A2:A10 som innehåller texten i D1 och som hanterar stora och små bokstäver som olika tecken, använder du den här formeln:

    =SUMPRODUKT(--EXAKT(D1, A2:A10))

    Formler som tar hänsyn till stora och små bokstäver för att räkna celler med specifik text (partiell matchning)

    För att skapa en formel som tar hänsyn till stor- och småskalighet och som kan hitta en textsträng av intresse var som helst i en cell använder vi tre olika funktioner:

    SUMPRODUCT(--(ISNUMBER(FIND(" text ", sortiment ))))

    Hur denna formel fungerar:

    • Funktionen FIND söker efter måltexten i varje cell i intervallet. Om den lyckas returnerar funktionen positionen för det första tecknet, annars felet #VALUE! För tydlighetens skull behöver vi inte känna till den exakta positionen, alla siffror (i motsats till felet) betyder att cellen innehåller måltexten.
    • Funktionen ISNUMBER hanterar matrisen med siffror och fel som returneras av FIND och omvandlar siffrorna till TRUE och allt annat till FALSE. En dubbel unary (--) tvingar de logiska värdena till ettor och nollor.
    • SUMPRODUCT summerar matrisen med 1:or och 0:or och returnerar antalet celler som innehåller den angivna texten som en del av innehållet.

    För att testa formeln på riktiga data kan vi ta reda på hur många celler i A2:A10 som innehåller delsträngen i D1:

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

    Detta ger ett antal på 3 (cellerna A2, A3 och A6):

    Hur du räknar filtrerade celler med specifik text

    Att räkna synliga objekt i en filtrerad lista måste du använda en kombination av fyra eller fler funktioner beroende på om du vill ha en exakt eller partiell matchning. För att göra exemplen lättare att följa tar vi först en snabb titt på källdata.

    Om du antar att du har en tabell med Beställnings-ID i kolumn B och Kvantitet i kolumn C som visas i bilden nedan. För tillfället är du bara intresserad av kvantiteter som är större än 1 och du har filtrerat din tabell i enlighet med detta. Frågan är - hur räknar du filtrerade celler med ett visst id?

    Formel för att räkna filtrerade celler med specifik text (exakt matchning)

    Om du vill räkna de filtrerade celler vars innehåll exakt matchar textsträngen i exemplet använder du en av följande formler:

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

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

    Där F1 är exempeltexten och B2:B10 är de celler som ska räknas.

    Hur dessa formler fungerar:

    I kärnan av båda formlerna gör du två kontroller:

    1. Identifiera synliga och dolda rader. För detta använder du SUBTOTAL-funktionen med funktion_nummer argumentet är satt till 103. För att ge alla individuella cellreferenser till SUBTOTAL, använd antingen INDIRECT (i den första formeln) eller en kombination av OFFSET, ROW och MIN (i den andra formeln). Eftersom vi vill hitta synliga och dolda rader spelar det ingen roll vilken kolumn vi refererar till (A i vårt exempel). Resultatet av denna operation är en matris med 1:or och 0:or där 1:orna står för synliga och 0:or för dolda rader.rader och nollor - dolda rader.
    2. Hitta celler som innehåller en given text. Jämför exempeltexten (F1) med cellintervallet (B2:B10). Resultatet av denna operation är en matris med TRUE- och FALSE-värden, som omvandlas till 1:or och 0:or med hjälp av den dubbla unära operatorn.

    Slutligen multiplicerar funktionen SUMPRODUCT elementen i de två matriserna på samma positioner och summerar sedan den resulterande matrisen. Eftersom multiplikation med noll ger noll är det bara de celler som har 1 i båda matriserna som har 1 i den slutliga matrisen. Summan av 1:orna är antalet filtrerade celler som innehåller den angivna texten.

    Formel för att räkna filtrerade celler med specifik text (partiell matchning)

    Om du vill räkna filtrerade celler som innehåller viss text som en del av cellinnehållet ändrar du ovanstående formler på följande sätt: I stället för att jämföra provtexten med cellintervallet söker du efter måltexten med hjälp av ISNUMBER och FIND som förklaras i ett av de tidigare exemplen:

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

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

    Resultatet är att formlerna kan hitta en given textsträng i vilken position som helst i en cell:

    Observera: Funktionen SUBTOTAL med 103 i funktion_nummer argumentet identifierar alla dolda celler som filtrerats bort och dolts manuellt. Resultatet är att ovanstående formler endast räknar synliga celler oavsett hur osynliga celler som doldes. Om du vill utesluta endast filtrerade celler men inkludera de celler som doldes manuellt, använd 3 för funktion_nummer .

    Så här räknar du antalet celler med viss text i Excel. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Tillgängliga nedladdningar

    Excel-formler för att räkna celler med viss text

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.