Excel COUNTIF och COUNTIFS med OR-logik

  • Dela Detta
Michael Brown

I handledningen förklaras hur du använder Excels funktioner COUNTIF och COUNTIFS för att räkna celler med flera OR-villkor, t.ex. om en cell innehåller X, Y eller Z.

Som alla vet är Excel COUNTIF-funktionen utformad för att räkna celler baserat på ett enda kriterium, medan COUNTIFS utvärderar flera kriterier med AND-logik. Men vad händer om din uppgift kräver OR-logik - när flera villkor anges kan alla matcha för att inkluderas i räkningen?

Det finns några möjliga lösningar på den här uppgiften, och den här handledningen kommer att behandla dem alla i detalj. Exemplen förutsätter att du har goda kunskaper om syntaxen och de allmänna användningsområdena för båda funktionerna. Om så inte är fallet kan du börja med att se över grunderna:

Excel COUNTIF-funktionen - räknar celler med ett kriterium.

Excel COUNTIFS-funktionen - räknar celler med flera AND-kriterier.

Nu när alla är på samma sida kan vi börja:

    Räkna celler med OR-villkor i Excel

    Det här avsnittet omfattar det enklaste scenariot - att räkna celler som uppfyller något (minst ett) av de angivna villkoren.

    Formel 1. COUNTIF + COUNTIF

    Det enklaste sättet att räkna celler som har ett värde eller ett annat (Countif a eller . b ) är att skriva en vanlig COUNTIF-formel för att räkna varje objekt individuellt och sedan addera resultaten:

    COUNTIF( sortiment , kriterium1 ) + COUNTIF( sortiment , kriterium2 )

    Låt oss till exempel ta reda på hur många celler i kolumn A som innehåller antingen "äpplen" eller "bananer":

    =COUNTIF(A:A, "äpplen") + COUNTIF(A:A, "bananer")

    I riktiga arbetsblad är det bra att använda sig av intervall snarare än hela kolumner för att formeln ska fungera snabbare. För att slippa uppdatera formeln varje gång villkoren ändras kan du skriva in de intressanta delarna i fördefinierade celler, till exempel F1 och G1, och hänvisa till dessa celler. Till exempel: Om du vill ha en formel för att uppdatera den, kan du skriva in den i en fördefinierad cell:

    =COUNTIF(A2:A10, F1) + COUNTIF(A2:A10, G1)

    Den här tekniken fungerar bra för ett par kriterier, men om du lägger till tre eller fler COUNTIF-funktioner tillsammans blir formeln för tung. I det här fallet är det bättre att hålla sig till något av följande alternativ.

    Formel 2. COUNTIF med konstanter i matrisen

    Här är en mer kompakt version av formeln SUMIF med OR-villkor i Excel:

    SUM(COUNTIF( sortiment , { kriterium1 , kriterium2 , kriterium3 , ...}))

    Formeln är uppbyggd på följande sätt:

    Först paketerar du alla villkor i en konstant array - enskilda objekt separeras med kommatecken och arrayen omsluts av hängande parenteser, till exempel {"äpplen", "bananer", "citroner"}.

    Därefter inkluderar du arraykonstanten i kriterier argument för en normal COUNTIF-formel: COUNTIF(A2:A10, {"äpplen", "bananer", "citroner"})

    Slutligen förvränger du COUNTIF-formeln i SUM-funktionen, eftersom COUNTIF kommer att ge tre individuella räkningar för "äpplen", "bananer" och "citroner", och du måste lägga ihop dessa räkningar.

    Vår fullständiga formel är följande:

    =SUM(COUNTIF(A2:A10,{"äpplen", "bananer", "citroner"}))

    Om du hellre vill ange dina kriterier som Referenser för intervallet måste du skriva in formeln med Ctrl + Shift + Enter för att det ska bli en matrisformel, till exempel:

    =SUM(COUNTIF(A2:A10,F1:H1))

    Lägg märke till de hängande parenteserna i skärmbilden nedan - det är det tydligaste tecknet på en matrisformel i Excel:

    Formel 3. SUMPRODUCT

    Ett annat sätt att räkna celler med OR-logik i Excel är att använda funktionen SUMPRODUCT på detta sätt:

    SUMPRODUCT(1*(( sortiment ={ kriterium1 , kriterium2 , kriterium3 , ...}))

    För att bättre visualisera logiken kan detta också skrivas som:

    SUMPRODUKT(( sortiment = kriterium1 ) + ( sortiment = kriterium2 ) + ...)

    Formeln testar varje cell i intervallet mot varje kriterium och returnerar TRUE om kriteriet är uppfyllt och FALSE annars. Som ett mellanresultat får du några matriser med TRUE- och FALSE-värden (antalet matriser är lika många som antalet kriterier). Därefter adderas matrisens element i samma position, dvs. de första elementen i alla matriserna, de andra elementen och så vidare.konverteras de logiska värdena till siffror, så du får en matris med 1:or (ett av kriterierna stämmer) och 0:or (inget av kriterierna stämmer). Eftersom alla kriterier testas mot samma celler finns det ingen möjlighet att något annat nummer skulle kunna förekomma i den resulterande matrisen - endast en inledande matris kan ha TRUE i en specifik position, andra kommer att ha FALSE. Slutligen, SUMPRODUCTadderar elementen i den resulterande matrisen och du får den önskade siffran.

    Den första formeln fungerar på liknande sätt, med skillnaden att den returnerar en 2-dimensionell matris med TRUE- och FALSE-värden, som du multiplicerar med 1 för att omvandla de logiska värdena till 1 respektive 0.

    Om man tillämpar formlerna på vårt datamaterial ser de ut på följande sätt:

    =SUMPRODUCT(1*(A2:A10={"äpplen", "bananer", "citroner"}))

    Eller

    =SUMPRODUCT((A2:A10="äpplen") + (A2:A10="bananer") + (A2:A10="citroner"))

    Om du ersätter den hårdkodade arraykonstanten med en intervallreferens får du en ännu elegantare lösning:

    =SUMPRODUKT(1*( A2:A10=F1:H1))

    Observera: SUMPRODUCT-funktionen är långsammare än COUNTIF, vilket är anledningen till att den här formeln är bäst att använda på relativt små datamängder.

    Räkna celler med OR- och AND-logik

    När du arbetar med stora datamängder som har relationer på flera nivåer och mellan olika nivåer mellan element är det troligt att du måste räkna celler med OR- och AND-villkor åt gången.

    Låt oss till exempel räkna antalet "äpplen", "bananer" och "citroner" som "levererats". Hur gör vi det? Till att börja med översätter vi våra villkor till Excels språk:

    • Kolumn A: "äpplen" eller "bananer" eller "citroner".
    • Kolumn C: "levererat".

    Om vi ser det från en annan vinkel behöver vi räkna rader med "äpplen och levererade" ELLER "bananer och levererade" ELLER "citroner och levererade". Om man ser det så här, går uppgiften ut på att räkna celler med tre OR-villkor - precis som vi gjorde i det föregående avsnittet! Den enda skillnaden är att du använder COUNTIFS istället för COUNTIF för att utvärdera AND-kriteriet inom varje OR-villkor.

    Formel 1. COUNTIFS + COUNTIFS

    Det är den längsta formeln som är lättast att skriva :)

    =COUNTIFS(A2:A10, "äpplen", C2:C10, "levererat") + COUNTIFS(A2:A10, "bananer", C2:C10, "levererat")) + COUNTIFS(A2:A10, "citroner", C2:C10, "levererat"))

    Skärmbilden nedan visar samma formel med cellreferenser:

    =RÄKNARE(A2:A10, K1, C2:C10, K2) +RÄKNARE(A2:A10, L1, C2:C10, K2) +RÄKNARE(A2:A10, M1,C2:C10, K2)

    Formel 2. COUNTIFS med konstanta matriser

    En mer kompakt COUNTIFS-formel med AND/OR-logik kan skapas genom att paketera OR-kriterier i en arraykonstant:

    =SUM(COUNTIFS(A2:A10, {"äpplen", "bananer", "citroner"}, C2:C10, "levereras"))

    När du använder en intervallreferens för kriterierna behöver du en matrisformel som du fyller i genom att trycka på Ctrl + Shift + Enter :

    =SUM(COUNTIFS(A2:A10,F1:H1,C2:C10,F2))

    Tips: Om det behövs kan du använda jokertecken i kriterierna för någon av de formler som diskuterats ovan. Om du till exempel vill räkna alla sorters bananer, t.ex. "gröna bananer" eller "guldfingerbananer", kan du använda denna formel:

    =SUM(COUNTIFS(A2:A10, {"äpplen", "*bananer*", "citroner"}, C2:C10, "levereras"))

    På samma sätt kan du skapa en formel för att räkna celler baserat på andra kriterietyper. Om du till exempel vill räkna antalet "äpplen", "bananer" eller "citroner" som har "levererats" och beloppet är större än 200, lägger du till ytterligare ett kriterieområde/kriteriepar till COUNTIFS:

    =SUM(COUNTIFS(A2:A10, {"äpplen", "*bananer*", "citroner"}, C2:C10, "levereras", B2:B10, ">200"))

    Du kan också använda denna formel för matrisen (som du skriver in via Ctrl + Shift + Enter ):

    =SUM(COUNTIFS(A2:A10,F1:H1,C2:C10,F2, B2:B10, ">"&F3))

    Räkna celler med flera OR-tillstånd

    I det föregående exemplet har du lärt dig hur man testar en uppsättning OR-villkor. Men vad händer om du har två eller fler uppsättningar och vill få fram en totalsumma av alla möjliga OR-relationer?

    Beroende på hur många villkor du behöver hantera kan du använda antingen COUNTIFS med en arraykonstant eller SUMPRODUCT med ISNUMBER MATCH. Den förstnämnda är relativt enkel att bygga, men den är begränsad till endast två uppsättningar OR-villkor. Den sistnämnda kan utvärdera ett obegränsat antal villkor (ett rimligt antal, naturligtvis, med tanke på Excels begränsning till 255 argument och 8192 tecken för den totala formellängden),men det kan krävas en viss ansträngning för att förstå formelns logik.

    Räkna celler med 2 uppsättningar av OR-förhållanden

    När du bara har två uppsättningar OR-kriterier behöver du bara lägga till ytterligare en arraykonstant till COUNTIFS-formeln som diskuterades ovan.

    För att formeln ska fungera krävs en liten men viktig förändring: använd en horisontell matris (element åtskilda med kommatecken) för en kriterieuppsättning och vertikal matris (element separerade med semikolon) för den andra. Detta säger åt Excel att "para" eller "korsberäkna" elementen i de två matriserna och returnera en tvådimensionell matris med resultaten.

    Låt oss till exempel räkna "äpplen", "bananer" eller "citroner" som antingen är "levererade" eller "i transit":

    =SUM(COUNTIFS(A2:A10, {"äpplen", "bananer", "citroner"}, B2:B10, {"levererat"; "i transit"}))

    Observera semikolonet i den andra konstanten i matrisen:

    Eftersom Excel är ett tvådimensionellt program är det inte möjligt att konstruera en tredimensionell eller fyrdimensionell matris, och därför fungerar den här formeln bara för två uppsättningar OR-kriterier. Om du vill räkna med fler kriterier måste du använda en mer komplex SUMPRODUCT-formel som förklaras i nästa exempel.

    Räkna celler med flera uppsättningar av OR-villkor

    Om du vill räkna celler med fler än två uppsättningar OR-kriterier använder du funktionen SUMPRODUCT tillsammans med ISNUMBER MATCH.

    Låt oss till exempel räkna antalet "äpplen", "bananer" eller "citroner" som antingen är "levererade" eller "på väg" och som är förpackade i antingen "påse" eller "bricka":

    =SUMPRODUCT(ISNUMBER(MATCH(A2:A10,{"äpplen", "bananer", "citroner"},0))*

    ISNUMBER(MATCH(B2:B10,{"bag", "tray"},0))*

    ISNUMBER(MATCH(C2:C10,{"levererad", "under transit"},0))))

    I formelns hjärta kontrollerar MATCH-funktionen kriterierna genom att jämföra varje cell i det angivna intervallet med motsvarande konstant i matrisen. Om en matchning hittas returnerar den en relativ position för värdet i matrisen, annars N/A. ISNUMBER omvandlar dessa värden till TRUE och FALSE, vilket motsvarar 1 respektive 0. SUMPRODUCT tar det därifrån och multiplicerar matrisensEftersom multiplikation med noll ger noll, är det bara de celler som har 1 i alla matriser som överlever och summeras.

    Skärmbilden nedan visar resultatet:

    Så här använder du funktionerna COUNTIF och COUNTIFS i Excel för att räkna celler med flera AND- och OR-villkor. Om du vill titta närmare på formlerna som diskuteras i den här handledningen är du välkommen att ladda ner vår exempelarbetsbok nedan. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Arbetsbok för övning

    Excel COUNTIF med OR-villkor - exempel (.xlsx-fil)

    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.