Hur man använder flera IF-satser i Microsoft Excel
Bildkredit: monkeybusinessimages/iStock/GettyImages
En IF-sats i Excel kör ett logiskt test som returnerar ett värde om ett villkor är uppfyllt och ett annat värde om det inte är det. Att använda en enda Excel IF-sats kan bara hantera grundläggande operationer, men om du kapslar flera IF-satser kan du utföra komplicerade uppgifter. Den enda nackdelen är att du måste vara försiktig när du konstruerar formeln för att undvika att göra fel. Alternativa Excel-funktioner kan göra samma jobb med mindre risk för fel. Lär dig grunderna i kapslade IF-satser i Excel och alternativen för att hitta den bästa metoden för dina behov.
Förstå Excel IF-utlåtandet
IF-funktionen i Excel säger i huvudsak "om detta är sant, returnera x-värdet, men om det inte är det, returnera y-värdet." Till exempel om du kollade om olika avdelningar i ditt företag var under eller över budget, kan du jämföra deras utgifter med deras budgetar med hjälp av funktionen och få den att returnera "Över budget" om avdelningen spenderade för mycket eller "Inom budget" om den gjorde det inte. Generellt sett använder du jämförelseoperatorer för att bilda ditt uttalande, som:
Dagens video
- = (lika med)
(större än)
= (större än eller lika med)
- < (mindre än)
- <= (mindre än eller lika med)
- <> (inte lika med)
Att förstå syntaxen för Excel IF-satsen är ett avgörande steg mot att lära sig att använda det på rätt sätt. Formatet för funktionen är OM(logiskt_test, värde_om_sant, [värde_om_falskt]) där hakparenteserna indikerar att detta sista argument är valfritt. Dessa är lätta att tolka: The Logiktest betyder påståendet du vill testa, värde_om_sant är platsen för vad du vill att Excel ska visa om testet är sant, och [värde_om_falskt] är den valfria platsen för vad du vill att Excel ska visa om testet är falskt.
Detta räcker för att du ska använda Excel-formeln för om-då-påståenden, vilket kan demonstreras med exemplet "Över budget/inom budget" från tidigare. Föreställ dig att du har det belopp som spenderats av olika avdelningar i kolumn B och beloppet budgeterat i kolumn C, med värdena som börjar på andra raden. I cell D2 skulle du skriva =OM(B2>C2, "Över budget", "Inom budget") för att returnera resultatet du letar efter (observera att du måste använda citattecken för att få det att returnera texten inuti). Den första delen säger "om värdet i B2 är större än värdet i C2" (om utgiften är större än budgeten), den andra delen säger "lämna tillbaka texten Över budget och den tredje delen säger "om inte, återvänd sedan Inom budget."
Kapsling av flera IF-satser
Att få ut det mesta av Excel IF-satsverktyget innebär att du kan kombinera flera IF-satser när du har en uppgift som är lämplig för det. Du kan inkludera en andra IF-sats i din ursprungliga IF-sats, och du kan inkludera en annan IF-sats i det och så vidare. Detta är särskilt användbart om du vill kategorisera något i en av flera grupper med en enda formel. Du kan till exempel använda kapslade IF-satser för att omvandla poängen som eleverna uppnått på ett test till ett betyg.
För att använda flera IF-satser korrekt, tänk på logiken i det du ber Excel att göra. I huvudsak, efter ditt villkor (det första argumentet i funktionen), kan du lägga till ytterligare ett IF-uttryck i värde_om_sant eller värde_om_falskt mellanslag, för att tala om för Excel vad som ska göras härnäst. Tänk på detta som att få Excel att kontrollera cellen mot ett andra kriterium om cellen i fråga inte gör det uppfylla det första kriteriet (eller faktiskt, om det uppfyller det första), och du kan fortsätta denna process länge tid. Med andra ord, du förvandlar "om detta, då det" till "om det här och detta, då det" eller "om inte det här utan det här, så det."
Ett exempel på kapslad IF-funktion
Föreställ dig att du har gett eleverna ett test där poäng på 85 procent eller högre är ett A, mellan 70 och 85 procent är ett B, mellan 55 och 70 procent är ett C, mellan 40 procent och 55 procent är ett D och allt lägre är ett Misslyckas. Poängen finns i kolumn B, från rad 2 till rad 11. Du kan använda en noggrant konstruerad Excel IF-funktion med flera villkor för att kategorisera elevernas poäng.
Den första delen är enkel (för en poäng i B2, i det här exemplet): =OM(B2>=85, "A") säger till Excel att returnera ett A om studenten fick 85 eller högre. Med kapsling kan du lägga till andra betyg genom att använda det tredje argumentet (vad ska man göra om villkoret är falskt) för att lägga till extra villkor: =OM(B2>=85, "A", OM(B2>=70, "B")), som säger åt Excel att returnera ett A för poäng på 85 eller högre, men om inte, returnera ett B om poängen är över 70. Fortsätt på detta sätt för att slutföra formeln, använd det tredje argumentet för en ny IF-sats varje gång: =OM(B2>=85, "A", OM(B2>=70, "B",OM(B2>=55, "C", OM(B2>=40, "D", "Fil")) ))
Det här ser komplicerat ut, så att bryta ner det borde cementera idén. De två första argumenten säger "om poängen i B2 är 85 eller mer, då får eleven ett A," och det tredje säger, " annars, kontrollera följande villkor." De andra IF leder till detta uttalande, "(för elever som får mindre än 85) om poängen i B2 är 70 eller högre, får eleven ett B, och om inte kontrollera följande villkor." Den tredje IF säger, "(för elever som får mindre än 70) om poängen i B2 är 55 eller högre får eleven ett C, och om inte, kontrollera följande villkor" och det fjärde säger "(för elever som får mindre än 55) om poängen i B2 är högre än 40, får eleven ett D, om inte, eleven misslyckas."
Felkoder för IF-uttalanden
Förutsatt att du anger formeln för din IF-sats korrekt, kommer den att returnera ett av alternativen du har gett till Excel. Men om du gör ett misstag kan formeln returnera a 0 eller #NAMN? i cellen som innehåller din formel.
A 0 fel betyder att antingen värde_om_sant eller värde_om_falskt argumentet är tomt. Åtgärda det här problemet genom att se till att ett värde anges i båda argumenten, eller åtminstone i värde_om_sant argument. De värde_om_falskt argument kan tas bort helt, och det kommer att returnera FALSE om du inte sätter ett andra kommatecken efter värde_om_sant fält.
A #NAMN? felet talar om för dig att du förmodligen har stavat fel eller skrivit fel i formeln. Detta kan vara lite svårare att fixa eftersom det kan vara vilken del av formeln som helst, men det bästa rådet är att dubbelkolla allt eller skriva ut formeln igen.
Vanliga problem med kapslade IF-uttalanden
Det föregående exemplet med kapslade IF-funktionsformel blev ganska lång, vilket är en av de stora nackdelarna med att använda flera IF-satser i Excel. De kan bli komplicerade och det är lätt att göra ett misstag eftersom du måste följa logiken noggrant för att se till att allt fungerar som du tänkt dig. Microsoft påpekar att en felaktigt kapslad formel till och med kan ge rätt resultat för det mesta, men felaktiga resultat i sällsynta fall. Dessa är svåra att upptäcka.
Att inte lägga villkoren i rätt ordning är ett vanligt misstag. I exemplet med betygsatta prov, om du började med lägre poäng =OM(B2>=40, "D", …" och fortsatte med att lista de andra i stigande ordning, även en poäng på 100 skulle ge ett D. Detta beror på att det första villkoret kontrolleras först, så om du började med "om cell B2 är 40 eller högre, returnera en D" skulle det klassificera alla poäng på 40 eller över som ett D utan att markera något annat eftersom det möter den första skick. Detta är ett perfekt exempel på varför du måste följa logiken i din formel.
Du måste också se till att du lägger till rätt antal parenteser i slutet av flera IF-satser för att stänga formeln ordentligt. Excel hjälper till med detta genom att färgkoordinera och markera parenteserna medan du arbetar.
Maximalt antal kapslade IF: er
Tekniskt sett kan du kapsla upp till 64 IF-funktioner i en enda formel, men Microsoft rekommenderar inte att du använder funktionen så här av skälen ovan. Saker och ting blir snabbt komplicerade, och om du försöker kapsla fler än 10 IF-satser finns det förmodligen ett bättre verktyg för jobbet som redan finns i Excel.
IFS-funktionen i Excel
Det bekvämaste alternativet till IF-funktionen är IFS-funktionen, som är en version av funktion som utför samma uppgift som kapsling i en enda funktion och kan hantera upp till 127 betingelser. IFS-funktionen har en enklare syntax: =IFS(logiskt_test1, värde_om_sant1, [logiskt_test2, värde_om_sant2], [logiskt_test3, värde_om_sant3]...) och så vidare. I huvudsak fungerar detta som kapslade IF-satser, förutom att efterföljande IF-satser upptar utrymmet efter "värdet om sant" utan att behöva ta fram funktionen igen.
Formeln i provbetygsexemplet kan skrivas mycket enklare med IFS-funktionen. Istället för:
=OM(B2>=85, "A", OM(B2>=70, "B",OM(B2>=55, "C", OM(B2>=40, "D", "Fil")) ))
bara skriva
=IFS(B2>=85, "A", B2>=70, "B", B2>=55, "C", B2>=40, "D", TRUE, "Fil")
De SANN på platsen före sist säger "om inget av de andra värdena uppfylls, returnera nästa värde."
Den här funktionen är endast tillgänglig i Excel 2019 eller Excel för Office 365.
VLOOKUP-funktionen
VLOOKUP-funktionen i Excel är ofta ett enklare alternativ till flera IF-satser och är tillgänglig på alla versioner av Excel från 2007 och framåt. Det är inte idealiskt för alla situationer eftersom det antingen returnerar resultat för en exakt matchning eller för närmast nummer, så det kunde inte användas för betyg som i föregående exempel. Men i många situationer kan det spara mycket arbete med att skriva ut en formel, även om du måste konstruera en tabell med möjliga värden i en kolumn, till exempel produkter som din butik säljer, och vad du vill att funktionen ska returnera, som priset på produkten, i en annan kolumn, för exempel.
Syntaxen för VLOOKUP är =SÖKUP(lookup_value, table_array, col_index_num, [range_lookup]) och att lära dig var och en av komponenterna visar hur du använder den. De lookup_value argument är värdet du vill kontrollera, vilket måste vara en cell i samma kolumn som början av tabellen du vill kontrollera den mot, antingen ovanför eller under den. De table_array är intervallet av celler som innehåller din tabell med information, såsom produkter och deras motsvarande priser, och col_index_num är kolumnen du vill att Excel ska titta i för att hitta värdet att returnera, med 1 anger kolumnen längst till vänster, 2 anger nästa och så vidare. Till sist, [range_lookup] är valfritt, men ange "TRUE" om du vill att Excel ska basera svaret på det närmaste värdet eller "FALSE" om du bara vill ha en exakt matchning.