Nested IF i Excel - formel med flera villkor

  • Dela Detta
Michael Brown

I handledningen förklaras hur man använder flera IF:er i Excel och det finns ett par exempel på inbäddade If-formler för de vanligaste uppgifterna.

Om någon frågar dig vilken Excel-funktion du använder oftast, vad skulle du svara? I de flesta fall är det Excel IF-funktionen. En vanlig If-formel som testar ett enda villkor är mycket okomplicerad och lätt att skriva. Men vad händer om dina data kräver mer genomarbetade logiska tester med flera villkor? I det här fallet kan du inkludera flera IF-funktioner i en formel, och dessa flera If-funktioner kan användas i en enda formel.uttalanden kallas för Excel Nested IF Den största fördelen med det inbäddade If-uttalandet är att det gör det möjligt att kontrollera mer än ett villkor och återge olika värden beroende på resultatet av dessa kontroller, allt i en enda formel.

Microsoft Excel har gränser för hur många Nivåer av inbäddade IF:er. I Excel 2003 och lägre var upp till 7 nivåer tillåtna. I Excel 2007 och högre kan du bädda in upp till 64 IF-funktioner i en formel.

Längre fram i den här handledningen hittar du ett par Excel-exempel på nested If samt en detaljerad förklaring av deras syntax och logik.

    Exempel 1. Klassisk IF-formel med inbäddning

    Här är ett typiskt exempel på Excel If med flera villkor: Anta att du har en lista med studenter i kolumn A och deras provresultat i kolumn B och att du vill klassificera resultaten med följande villkor:

    • Utmärkt: Över 249
    • Bra: mellan 249 och 200, inklusive
    • Tillfredsställande: mellan 199 och 150 inklusive.
    • Dåligt: Under 150

    Låt oss nu skriva en inbäddad IF-funktion baserad på ovanstående kriterier. Det anses vara en bra metod att börja med det viktigaste villkoret och hålla funktionerna så enkla som möjligt. Vår inbäddade IF-formel i Excel ser ut på följande sätt:

    =IF(B2>249, "Utmärkt", IF(B2>=200, "Bra", IF(B2>150, "Tillfredsställande", "Dåligt"))))

    Den fungerar precis som den ska:

    Förstå Excel-nested IF-logik

    Jag har hört en del människor säga att Excel med flera If gör dem galna :) Försök att se på det från en annan vinkel:

    Vad formeln faktiskt säger till Excel att göra är att utvärdera logisk_test i den första IF-funktionen och, om villkoret är uppfyllt, återge det värde som angetts i den första IF-funktionen. value_if_true Om villkoret i den första If-funktionen inte är uppfyllt, testas den andra If-uppgiften, och så vidare.

    IF( kontrollera om B2>=249, om det är sant - återge "Utmärkt", annars

    IF( kontrollera om B2>=200, om det är sant - återge "Bra", annars

    IF( kontrollera om B2>150, om det är sant - återge "Tillfredsställande", om det är falskt -

    return "Poor"))))

    Exempel 2. Multiple If med aritmetiska beräkningar

    Här är en annan typisk uppgift: enhetspriset varierar beroende på den angivna kvantiteten, och ditt mål är att skriva en formel som beräknar totalpriset för alla antal artiklar som anges i en viss cell. Med andra ord måste formeln kontrollera flera villkor och utföra olika beräkningar beroende på vilket beloppsintervall den angivna kvantiteten ingår i:

    Enhet Kvantitet Pris per enhet
    1 till 10 $20
    11 till 19 $18
    20 till 49 $16
    50 till 100 $13
    Över 101 $12

    Den här uppgiften kan också utföras med hjälp av flera IF-funktioner. Logiken är densamma som i exemplet ovan, den enda skillnaden är att du multiplicerar den angivna kvantiteten med det värde som returneras av de inbäddade IF-funktionerna (dvs. motsvarande pris per enhet).

    Om användaren skriver in kvantiteten i cell B8 är formeln följande:

    =B8*IF(B8>=101, 12, IF(B8>=50, 13, IF(B8>=20, 16, IF( B8>=11, 18, IF(B8>=1, 20, "")))))

    Resultatet kommer att se ut ungefär så här:

    Som du förstår visar det här exemplet bara den allmänna metoden och du kan enkelt anpassa den här inbäddade If-funktionen till din specifika uppgift.

    Istället för att "hårdkoda" priserna i formeln kan du till exempel hänvisa till de celler som innehåller dessa värden (cellerna B2 till B6). På så sätt kan användarna redigera källdata utan att behöva uppdatera formeln:

    =B8*IF(B8>=101,B6, IF(B8>=50, B5, IF(B8>=20, B4, IF( B8>=11, B3, IF(B8>=1, B2, "")))))

    Du kan också inkludera ytterligare en eller flera IF-funktioner som fastställer en övre, nedre eller båda gränserna för beloppsintervallet. När kvantiteten ligger utanför intervallet visas ett meddelande om att beloppet ligger utanför intervallet i formeln. Till exempel:

    =IF(OR(B8>200,B8=101,12, IF(B8>=50, 13, IF(B8>=20, 16, IF( B8>=11, 18, IF(B8>=1, 20, ""))))))

    De inbäddade IF-formlerna som beskrivs ovan fungerar i alla versioner av Excel. I Excel 365 och Excel 2021 kan du också använda IFS-funktionen för samma ändamål.

    Avancerade Excel-användare som är bekanta med matrisformler kan använda denna formel som i princip gör samma sak som den inbäddade IF-funktionen som diskuterades ovan. Även om matrisformeln är mycket svårare att förstå och skriva, har den en obestridlig fördel - du anger det cellintervall som innehåller dina villkor i stället för att hänvisa till varje villkor individuellt. Detta gör attFormeln är mer flexibel, och om användarna råkar ändra något av de befintliga villkoren eller lägga till ett nytt villkor behöver du bara uppdatera en enda intervallreferens i formeln.

    Excel nested IF - tips och tricks

    Som du just har sett är det ingen raketforskning att använda flera IF i Excel. Följande tips hjälper dig att förbättra dina inbäddade IF-formler och förebygga vanliga misstag.

    Begränsningar för inbäddade IF

    I Excel 2007 - Excel 365 kan du bädda in upp till 64 IF-funktioner. I äldre versioner av Excel 2003 och lägre kan du använda upp till 7 bäddade IF-funktioner. Att du kan bädda in många IF-funktioner i en formel betyder dock inte att du bör göra det. Tänk på att varje ytterligare nivå gör formeln svårare att förstå och felsöka. Om formeln har för många bäddade nivåer kan det hända att duvill optimera den genom att använda ett av dessa alternativ.

    Ordningen på de inbäddade IF-funktionerna har betydelse

    Excel-nested IF-funktionen utvärderar de logiska testerna i den ordning de visas i formeln, och så snart ett av villkoren är sant testas inte de efterföljande villkoren. Med andra ord slutar formeln efter det första resultatet som är sant.

    Låt oss se hur det fungerar i praktiken: Med B2 lika med 274 utvärderar den inbäddade IF-formeln nedan det första logiska testet (B2>249) och returnerar "Utmärkt" eftersom det logiska testet är sant:

    =IF(B2>249, "Utmärkt", IF(B2>=200, "Bra", IF(B2>150, "Tillfredsställande", "Dåligt"))))

    Låt oss nu vända på ordningen för IF-funktionerna:

    =IF(B2>150, "Tillfredsställande", IF(B2>200, "Bra", IF(B2>249, "Utmärkt", "Dåligt"))))

    Formeln testar det första villkoret, och eftersom 274 är större än 150 är resultatet av det logiska testet också VARA. Följaktligen returnerar formeln "Tillfredsställande" utan att testa andra villkor.

    Om du ändrar ordningen på IF-funktionerna ändras resultatet:

    Utvärdera logiken i formeln

    Om du vill se det logiska flödet av din inbäddade IF-formel steg för steg använder du funktionen Utvärdera formel som finns i Formel på fliken Granskning av formler Gruppen. Det understrukna uttrycket är den del som för närvarande utvärderas, och om du klickar på Utvärdera visar dig alla steg i utvärderingsprocessen.

    Till exempel kommer utvärderingen av det första logiska testet i den inbäddade IF-formeln som visas i skärmdumpen nedan att se ut på följande sätt: B2>249; 274>249; TRUE; Excellent.

    Balansera parentesen i inbäddade IF-funktioner

    En av de största utmaningarna med inbäddade IF:er i Excel är att matcha parentesparen. Om parenteserna inte matchar fungerar inte formeln. Som tur är har Microsoft Excel ett par funktioner som kan hjälpa dig att balansera parenteserna när du redigerar en formel:

    • Om du har mer än en uppsättning parenteser är parentesparen skuggade i olika färger så att den inledande parentesen matchar den avslutande parentesen.
    • När du stänger en parentes markerar Excel kortfattat det matchande paret. Samma effekt av fet stil eller "flimmer" uppstår när du rör dig genom formeln med hjälp av piltangenterna.

    Mer information finns i Matcha parentespar i Excel-formler.

    Behandla text och siffror på olika sätt

    När du bygger logiska tester av dina inbäddade IF-formler ska du komma ihåg att text och siffror ska behandlas på olika sätt - omsluta alltid textvärden inom dubbla citationstecken, men sätt aldrig citationstecken runt siffror:

    Just det: =IF(B2>249, "Utmärkt",...)

    Fel: =IF(B2>"249", "Excellent",…)

    Det logiska testet i den andra formeln ger FALSK även om värdet i B2 är större än 249. Varför? 249 är ett tal och "249" är en numerisk sträng, vilket är två olika saker.

    Lägg till mellanslag eller radbrytningar för att göra inbäddade IF:er lättare att läsa.

    När du bygger en formel med flera inbäddade IF-nivåer kan du göra formelns logik tydligare genom att separera olika IF-funktioner med mellanslag eller radbrytningar. Excel bryr sig inte om extra mellanslag i en formel, så du behöver inte oroa dig för att den ska bli fel.

    Om du vill flytta en viss del av formeln till nästa rad klickar du bara på den plats där du vill sätta in en radbrytning och trycker på Alt + Enter . Expandera sedan formelfältet så mycket du vill så kommer du att se att din inbäddade IF-formel har blivit mycket lättare att förstå.

    Alternativ till inbäddade IF i Excel

    För att komma runt gränsen på sju inbäddade IF-funktioner i Excel 2003 och äldre versioner och för att göra dina formler mer kompakta och snabba, kan du överväga att använda följande alternativ till inbäddade Excel IF-funktioner.

    1. Om du vill testa flera villkor och returnera olika värden baserat på resultaten av dessa tester kan du använda funktionen CHOOSE i stället för inbäddade IF:er.
    2. Skapa en referenstabell och använd VLOOKUP med ungefärlig matchning som visas i det här exemplet: VLOOKUP istället för inbäddad IF i Excel.
    3. Använd IF tillsammans med logiska funktioner OR / AND, vilket visas i dessa exempel.
    4. Använd en matrisformel som i det här exemplet.
    5. Kombinera flera IF-satser med hjälp av funktionen CONCATENATE eller concatenate-operatorn (&). Ett exempel på en formel finns här.
    6. För erfarna Excel-användare kan det bästa alternativet till att använda flera inbäddade IF-funktioner vara att skapa en egen kalkylbladfunktion med VBA.

    Så här använder du en If-formel i Excel med flera villkor. Tack för att du läste och vi ses på vår blogg nästa vecka.

    Arbetsbok för övning för nedladdning

    Inbäddade If Excel-uttalanden (.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.