Excel IF-funktion med flera villkor

  • Dela Detta
Michael Brown

I handledningen visas hur man skapar flera IF-satser i Excel med AND- och OR-logik. Du lär dig också hur man använder IF tillsammans med andra Excel-funktioner.

I den första delen av vår Excel IF-handledning tittade vi på hur man konstruerar en enkel IF-angivelse med ett villkor för text, siffror, datum, blanksteg och icke-blanksteg. För en kraftfull dataanalys kan du dock ofta behöva utvärdera flera villkor samtidigt. Nedanstående formelexempel visar dig de mest effektiva sätten att göra detta på.

    Hur du använder IF-funktionen med flera villkor

    I huvudsak finns det två typer av IF-formel med flera kriterier baserat på AND / OR-logiken I det logiska testet av din IF-formel bör du därför använda en av dessa funktioner:

    • AND-funktionen - ger TRUE om alla villkor är uppfyllda, annars FALSE.
    • OR-funktion - ger TRUE om ett enskilt villkor uppfylls, annars FALSE.

    För att illustrera detta bättre kan vi undersöka några exempel på verkliga formler.

    Excel IF-meddelande med flera villkor (AND-logik)

    Den generiska formeln för Excel IF med två eller flera villkor är följande:

    IF(AND( villkor1 , villkor2 , ...), value_if_true, value_if_false)

    Översatt till ett mänskligt språk lyder formeln: Om villkor 1 är sant OCH villkor 2 är sant, återge value_if_true ; annars återkommer value_if_false .

    Anta att du har en tabell med poäng från två prov i kolumnerna B och C. För att klara slutprovet måste båda poängen vara högre än 50.

    För det logiska testet använder du följande AND-sats: AND(B2>50, C2>50)

    Om båda villkoren är sanna ger formeln "Godkänd", om något av villkoren är falskt ger formeln "Underkänd".

    =IF(AND(B2>50, B2>50), "Godkänd", "Underkänd")

    Enkelt, eller hur? Skärmbilden nedan visar att vår Excel IF /AND-formel fungerar korrekt:

    På samma sätt kan du använda Excel-funktionen IF med flera textvillkor .

    För att till exempel få ut "Bra" om både B2 och C2 är större än 50, och "Dåligt" i annat fall, är formeln följande:

    =IF(AND(B2="godkänd", C2="godkänd"), "Bra!", "Dåligt")

    Viktigt att notera: AND-funktionen kontrollerar alla villkor Ett sådant beteende är lite ovanligt eftersom de flesta programmeringsspråk inte testar efterföljande villkor om något av de tidigare testerna har gett FALSE.

    I praktiken kan en till synes korrekt IF-angivelse resultera i ett fel på grund av denna specificitet. Exempelvis skulle formeln nedan ge resultatet #DIV/0! ("dividera med noll"-fel) om cell A2 är lika med 0:

    =IF(AND(A20, (1/A2)>0,5), "Bra", "Dåligt")

    För att undvika detta bör du använda en inbäddad IF-funktion:

    =IF(A20, IF((1/A2)>0.5, "Bra", "Dåligt"), "Dåligt")

    Mer information finns i formeln IF AND i Excel.

    Excel IF-funktion med flera villkor (OR-logik)

    Att göra en sak om alla villkor är uppfylld, annars gör något annat, använd denna kombination av funktionerna IF och OR:

    IF(OR( villkor1 , villkor2 , ...), value_if_true, value_if_false)

    Skillnaden från IF/AND-formeln som diskuterades ovan är att Excel returnerar TRUE om något av de angivna villkoren är sant.

    Om vi i den tidigare formeln använder OR i stället för AND:

    =IF(OR(B2>50, B2>50), "Godkänd", "Underkänd")

    Alla som har mer än 50 poäng i något av proven kommer att få "Godkänd" i kolumn D. Med sådana villkor har våra elever en bättre chans att klara slutprovet (Yvette hade särskilt otur och misslyckades med bara 1 poäng :)

    Tips: Om du skapar en flera IF-satser med text och testar ett värde i en cell med OR-logiken (dvs. en cell kan vara "det här" eller "det") kan du bygga en mer kompakt formel med hjälp av en arraykonstant.

    Om du till exempel vill markera en försäljning som "avslutad" om cell B2 är antingen "levererad" eller "betald" är formeln följande:

    =IF(OR(B2={"levererad", "betald"}), "Stängt", "")

    Fler exempel på formler finns i Excel IF OR-funktionen.

    IF med flera AND & OR-satser

    Om du måste utvärdera flera uppsättningar av flera villkor måste du använda både AND & OR-funktionerna samtidigt.

    I vår exempeltabell antar vi att du har följande kriterier för att kontrollera provresultaten:

    • Förutsättning 1: exam1>50 och exam2>50
    • Villkor 2: test1>40 och test2>60

    Om något av villkoren är uppfyllda anses slutprovet vara godkänt.

    Vid första anblicken verkar formeln lite knepig, men det är den faktiskt inte! Du uttrycker bara vart och ett av ovanstående villkor som ett AND-uttalande och bäddar in dem i OR-funktionen (eftersom det inte är nödvändigt att uppfylla båda villkoren räcker det med ett av dem):

    OR(AND(B2>50, C2>50), AND(B2>40, C2>60)

    Använd sedan OR-funktionen för det logiska testet av IF och ange den önskade value_if_true och value_if_false Resultatet blir följande IF-formel med flera AND/OR-villkor:

    =IF(OR(AND(B2>50, C2>50), AND(B2>40, C2>60), "Godkänd", "Underkänd")

    Skärmbilden nedan visar att vi har gjort formeln rätt:

    Naturligtvis är du inte begränsad till att bara använda två AND/OR-funktioner i dina IF-formler. Du kan använda så många av dem som din affärslogik kräver, förutsatt att:

    • I Excel 2007 och senare har du högst 255 argument och den totala längden på IF-formeln får inte överstiga 8 192 tecken.
    • I Excel 2003 och senare finns det högst 30 argument och den totala längden på IF-formeln får inte överstiga 1024 tecken.

    Inbäddade IF-satser för att kontrollera flera logiska tester

    Om du vill utvärdera flera logiska tester i en enda formel kan du bädda in flera funktioner i varandra. Sådana funktioner kallas inbäddade IF-funktioner De är särskilt användbara när du vill returnera olika värden beroende på resultaten av de logiska testerna.

    Här är ett typiskt exempel: anta att du vill kvalificera elevernas prestationer som " Bra ", " Tillfredsställande " och " Dålig " baserat på följande poäng:

    • Bra: 60 eller mer (>=60)
    • Tillfredsställande: mellan 40 och 60 (>40 och <60)
    • Fattig: 40 eller mindre (<=40)

    Innan du skriver en formel bör du tänka på i vilken ordning funktionerna ska placeras. Excel utvärderar de logiska testerna i den ordning de visas i formeln. När ett villkor utvärderas till TRUE testas inte de efterföljande villkoren, vilket innebär att formeln stannar efter det första TRUE-resultatet.

    I vårt fall är funktionerna ordnade från störst till minst:

    =IF(B2>=60, "Bra", IF(B2>40, "Tillfredsställande", "Dåligt"))

    Naturligtvis kan du bädda in fler funktioner om det behövs (upp till 64 i moderna versioner).

    Mer information finns i avsnittet Hur du använder flera inbäddade IF-satser i Excel.

    Excel IF array-formel med flera villkor

    Ett annat sätt att få en Excel IF att testa flera villkor är att använda en arrayformel.

    Använd asterisk för att utvärdera villkor med AND-logiken:

    IF( villkor1 ) * ( villkor2 ) * ..., value_if_true, value_if_false)

    Använd plustecknet om du vill testa villkor med OR-logiken:

    IF( villkor1 ) + ( villkor2 ) + ..., value_if_true, value_if_false)

    För att slutföra en matrisformel korrekt trycker du på tangenterna Ctrl + Shift + Enter samtidigt. I Excel 365 och Excel 2021 fungerar detta även som en vanlig formel tack vare stödet för dynamiska matriser.

    Till exempel, för att få "Godkänd" om både B2 och C2 är större än 50, är formeln följande:

    =IF((B2>50) * (C2>50), "Godkänd", "Underkänd")

    I mitt Excel 365 fungerar en vanlig formel utmärkt (som du kan se i skärmdumparna ovan). I Excel 2019 och senare kommer du ihåg att göra det till en matrisformel genom att använda genvägen Ctrl + Shift + Enter.

    För att utvärdera flera villkor med OR-logiken är formeln följande:

    =IF((B2>50) + (C2>50), "Godkänd", "Underkänd")

    Användning av IF tillsammans med andra funktioner

    I det här avsnittet förklaras hur du använder IF i kombination med andra Excel-funktioner och vilka fördelar detta ger dig.

    Exempel 1. Om #N/A fel i VLOOKUP

    När VLOOKUP eller en annan uppslagsfunktion inte kan hitta något returnerar den ett #N/A-fel. För att få tabellerna att se snyggare ut kan du returnera noll, tomt eller en specifik text om #N/A. Använd den här generiska formeln för detta:

    IF(ISNA(VLOOKUP(...)), value_if_na , VLOOKUP(....))

    Till exempel:

    Om #N/A återges 0:

    Om uppslagsvärdet i E1 inte hittas ger formeln noll.

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), 0, VLOOKUP(E1, A2:B10, 2, FALSE))

    Om #N/A återges blankt:

    Om uppslagsvärdet inte hittas returnerar formeln ingenting (en tom sträng).

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "", VLOOKUP(E1, A2:B10, 2, FALSE))

    Om #N/A återges en viss text:

    Om uppslagsvärdet inte hittas returnerar formeln specifik text.

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "Not found", VLOOKUP(E1, A2:B10, 2, FALSE))

    Fler exempel på formler finns i VLOOKUP med IF-angivelse i Excel.

    Exempel 2. IF med funktionerna SUM, AVERAGE, MIN och MAX

    För att summera cellvärden baserat på vissa kriterier tillhandahåller Excel funktionerna SUMIF och SUMIFS.

    I vissa situationer kan din affärslogik kräva att SUM-funktionen ingår i det logiska testet av IF. Om du t.ex. vill returnera olika textetiketter beroende på summan av värdena i B2 och C2 är formeln följande:

    =IF(SUM(B2:C2)>130, "Bra", IF(SUM(B2:C2)>110, "Tillfredsställande", "Dåligt"))

    Om summan är större än 130 är resultatet "bra", om summan är större än 110 är resultatet "tillfredsställande", om summan är 110 eller lägre är resultatet "dåligt".

    På samma sätt kan du bädda in funktionen AVERAGE i det logiska testet IF och returnera olika etiketter baserat på det genomsnittliga resultatet:

    =IF(AVERAGE(B2:C2)>65, "Bra", IF(AVERAGE(B2:C2)>55, "Tillfredsställande", "Dåligt"))

    Om du antar att den totala poängen finns i kolumn D kan du identifiera de högsta och lägsta värdena med hjälp av funktionerna MAX och MIN:

    =IF(D2=MAX($D$2:$D$10), "Bästa resultat", "")

    =IF(D2=MAX($D$2:$D$10), "Bästa resultat", "")

    Om du vill ha båda etiketterna i en kolumn, bäddar du in ovanstående funktioner i varandra:

    =IF(D2=MAX($D$2:$D$10), "Bästa resultat", IF(D2=MIN($D$2:$D$10), "Sämsta resultat", ""))

    På samma sätt kan du använda IF tillsammans med dina anpassade funktioner. Du kan till exempel kombinera den med GetCellColor eller GetCellFontColor för att returnera olika resultat baserat på en cellfärg.

    Dessutom har Excel ett antal funktioner för att beräkna data utifrån villkor. För detaljerade exempel på formler, se följande handledningar:

    • COUNTIF - räkna celler som uppfyller ett villkor
    • COUNTIFS - räkna celler med flera kriterier
    • SUMIF - villkorlig summering av celler
    • SUMIFS - summera celler med flera kriterier

    Exempel 3. IF med ISNUMBER, ISTEXT och ISBLANK

    För att identifiera text, siffror och tomma celler tillhandahåller Microsoft Excel särskilda funktioner som ISTEXT, ISNUMBER och ISBLANK. Genom att placera dem i de logiska testerna av tre inbäddade IF-utsagor kan du identifiera alla olika datatyper på en gång:

    =IF(ISTEXT(A2), "Text", IF(ISNUMBER(A2), "Antal", IF(ISBLANK(A2), "Blank", "")))

    Exempel 4. IF och CONCATENATE

    Om du vill skriva ut resultatet av IF och en text i en cell använder du funktionerna CONCATENATE eller CONCAT (i Excel 2016-365) och IF tillsammans. Exempel:

    =CONCATENATE("Du presterade ", IF(B1>100, "fantastiskt!", IF(B1>50, "bra", "dåligt"))))

    =CONCAT("Du presterade ", IF(B1>100, "fantastiskt!", IF(B1>50, "bra", "dåligt"))))

    Om du tittar på skärmdumpen nedan behöver du knappast någon förklaring till vad formeln gör:

    Formeln IF ISERROR / ISNA i Excel

    De moderna versionerna av Excel har särskilda funktioner för att fånga upp fel och ersätta dem med en annan beräkning eller ett fördefinierat värde - IFERROR (i Excel 2007 och senare) och IFNA (i Excel 2013 och senare). I tidigare Excel-versioner kan du istället använda kombinationerna IF ISERROR och IF ISNA.

    Skillnaden är att IFERROR och ISERROR hanterar alla möjliga Excel-fel, inklusive #VALUE!, #N/A, #NAME?, #REF!, #NUM!, #DIV/0! och #NULL! medan IFNA och ISNA endast är specialiserade på #N/A-fel.

    Om du till exempel vill ersätta felet "dividera med noll" (#DIV/0!) med din egen text kan du använda följande formel:

    =IF(ISERROR(A2/B2), "N/A", A2/B2)

    Och det är allt jag har att säga om att använda IF-funktionen i Excel. Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Arbetsbok för övning för nedladdning

    Excel IF flera kriterier - 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.