Excel Nested IF statements - eksempler, bedste praksis og alternativer

  • Del Dette
Michael Brown

I denne vejledning forklares det, hvordan du bruger den indlejrede IF-funktion i Excel til at kontrollere flere betingelser. Du lærer også et par andre funktioner, som kan være gode alternativer til at bruge en indlejret formel i Excel.

Hvordan implementerer du normalt en beslutningslogik i dine Excel-regneark? I de fleste tilfælde bruger du en IF-formel til at teste din betingelse og returnere en værdi, hvis betingelsen er opfyldt, og en anden værdi, hvis betingelsen ikke er opfyldt. Hvis du vil evaluere mere end én betingelse og returnere forskellige værdier afhængigt af resultaterne, skal du indlejre flere IF'er i hinanden.

Selv om det er meget populært, er den indlejrede IF-erklæring ikke den eneste måde at kontrollere flere betingelser i Excel på. I denne vejledning finder du en håndfuld alternativer, som bestemt er værd at udforske.

    Excel indlejret IF-erklæring

    Her er den klassiske Excel-formel IF i en generisk form:

    IF( betingelse1 , resultat1 , IF( betingelse2 , resultat2 , IF( tilstand3 , resultat3 , resultat4 )))

    Du kan se, at hver efterfølgende IF-funktion er indlejret i value_if_false Hver IF-funktion er omsluttet af sit eget sæt parenteser, men alle de lukkende parenteser er i slutningen af formlen.

    Vores generiske IF-formel evaluerer 3 betingelser og returnerer 4 forskellige resultater (resultat 4 returneres, hvis ingen af betingelserne er SANDT). Oversat til et menneskesprog fortæller denne IF-formel Excel at gøre følgende:

    Test betingelse1 , hvis TRUE - returnerer resultat1 , hvis FALSK -

    test betingelse2 , hvis TRUE - returnerer r esult2 , hvis FALSK -

    test tilstand3 , hvis TRUE - returnerer resultat3 , hvis FALSK -

    returnere resultat4

    Lad os f.eks. finde ud af provisioner for en række sælgere baseret på det antal salg, de har foretaget:

    Kommissionen Salg
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Over $150

    I matematik ændrer en ændring af rækkefølgen af addender ikke summen. I Excel ændrer en ændring af rækkefølgen af IF-funktioner resultatet. Hvorfor? Fordi en indlejret IF-formel returnerer en værdi, der svarer til den første TRUE-tilstand Derfor er det meget vigtigt, at du i dine indlejrede IF-statements arrangerer betingelserne i den rigtige retning - fra høj til lav eller fra lav til høj, afhængigt af din formels logik. I vores tilfælde kontrollerer vi først den "højeste" betingelse, derefter den "næsthøjeste" og så videre:

    =IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))

    Hvis vi placerede betingelserne i omvendt rækkefølge, nedefra og op, ville resultaterne være helt forkerte, fordi vores formel ville stoppe efter den første logiske test (B2>=1) for enhver værdi, der er større end 1. Lad os sige, at vi har 100 $ i salg - det er større end 1, så formlen ville ikke kontrollere andre betingelser og returnere 3 % som resultat.

    Hvis du hellere vil arrangere betingelserne fra lavt til højt, skal du bruge operatoren "mindre end" og evaluere den "laveste" betingelse først, derefter den "næstlaveste" osv:

    =IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))

    Som du kan se, kræver det en hel del overvejelser at opbygge logikken i en nested IF-erklæring korrekt hele vejen til slutningen. Og selv om Microsoft Excel tillader nesting op til 64 IF-funktioner i en formel, er det ikke noget, du virkelig ønsker at gøre i dine regneark. Så hvis du (eller en anden) stirrer på din nested IF-formel i Excel og forsøger at finde ud af, hvad den egentlig gør, er det på tide atgenoverveje din strategi og sandsynligvis vælge et andet værktøj i dit arsenal.

    Du kan finde flere oplysninger under Excel nested IF-erklæring.

    Skjulte IF med OR/AND-betingelser

    Hvis du har brug for at evaluere et par sæt forskellige betingelser, kan du udtrykke disse betingelser ved hjælp af OR- og AND-funktioner, indlejre funktionerne i IF-udsagn og derefter indlejre IF-udsagnene i hinanden.

    Skjulte IF'er i Excel med OR-angivelser

    Ved at bruge OR-funktionen kan du kontrollere to eller flere forskellige betingelser i den logiske test af hver IF-funktion og returnere TRUE, hvis et (mindst ét) af OR-argumenterne er TRUE. For at se, hvordan det rent faktisk fungerer, kan du se på følgende eksempel.

    Lad os antage, at du har to kolonner med salg, f.eks. januar-salg i kolonne B og februar-salg i kolonne C. Du ønsker at kontrollere tallene i begge kolonner og beregne provisionen på grundlag af et højere tal. Med andre ord, du laver en formel med følgende logik: Hvis enten januar- eller februar-salget er større end 150 $, får sælgeren 10 % provision, hvis januar- eller februar-salget er større end eller lig med$101, sælger får 7% i provision osv.

    For at få det gjort, skal du skrive et par OF-udsagn som OR(B2>150, C2>150) og indlejre dem i de logiske test af IF-funktionerne, der er beskrevet ovenfor. Som resultat får du denne formel:

    =IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))

    Og få provisionen tildelt på grundlag af det højeste salgssum:

    Du kan finde flere eksempler på formler i Excel IF OR-erklæringen.

    Skjulte IF'er i Excel med AND-udsagn

    Hvis dine logiske test omfatter flere betingelser, og alle disse betingelser skal være VIGTIGT, skal du bruge AND-funktionen.

    Hvis du f.eks. vil tildele provisioner baseret på et lavere antal salg, skal du tage ovenstående formel og erstatte OR med AND-angivelser. På en anden måde fortæller du Excel, at den kun skal returnere 10 %, hvis salget i januar og februar er større end 150 $, 7 %, hvis salget i januar og februar er større end eller lig med 101 $ osv.

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))

    Resultatet er, at vores IF-formel beregner provisionen på grundlag af det laveste tal i kolonne B og C. Hvis en af kolonnerne er tom, er der slet ingen provision, fordi ingen af AND-betingelserne er opfyldt:

    Hvis du ønsker at få 0 % tilbage i stedet for tomme celler, skal du erstatte en tom streng ('''") i det sidste argument med 0 %:

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))

    Du kan finde flere oplysninger her: Excel IF med flere AND/OR-betingelser.

    VLOOKUP i stedet for indlejret IF i Excel

    Når du har med "skalaer" at gøre, dvs. kontinuerlige intervaller af numeriske værdier, der tilsammen dækker hele intervallet, kan du i de fleste tilfælde bruge VLOOKUP-funktionen i stedet for indlejrede IF'er.

    Til at begynde med skal du lave en referencetabel som vist i skærmbilledet nedenfor. Og derefter skal du lave en Vlookup-formel med omtrentlig overensstemmelse , dvs. med den range_lookup argumentet sat til TRUE.

    Hvis vi antager, at opslagsværdien er i B2, og at referencetabellen er F2:G5, lyder formlen som følger:

    =VLOOKUP(B2,$F$2:$G$5,2,TRUE)

    Bemærk venligst, at vi retter table_array med absolutte referencer ($F$2:$G$5) for at formlen kan kopieres korrekt til andre celler:

    Ved at indstille det sidste argument i din Vlookup-formel til TRUE fortæller du Excel, at det skal søge efter den nærmeste match - Hvis der ikke findes et nøjagtigt match, returneres den næststørste værdi, der er mindre end opslagsværdien. Resultatet er, at din formel ikke kun matcher de nøjagtige værdier i opslagstabellen, men også alle værdier, der ligger imellem.

    F.eks. er opslagsværdien i B3 $95. Dette tal findes ikke i opslagstabellen, og Vlookup med nøjagtigt match ville returnere en #N/A-fejl i dette tilfælde. Men Vlookup med tilnærmelsesvis match fortsætter med at søge, indtil den finder den nærmeste værdi, der er mindre end opslagsværdien (som i vores eksempel er $50), og returnerer en værdi fra den anden kolonne i samme række (som er 5%).

    Men hvad nu hvis opslagsværdien er mindre end det mindste tal i opslagstabellen, eller hvis opslagscellen er tom? I dette tilfælde vil en Vlookup-formel returnere #N/A-fejlen. Hvis det ikke er det, du egentlig ønsker, kan du placere VLOOKUP i IFERROR og angive den værdi, der skal udskrives, når opslagsværdien ikke findes. F.eks:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Uden for området")

    Vigtig bemærkning! For at en Vlookup-formel med tilnærmelsesvis match kan fungere korrekt, skal den første kolonne i opslagstabellen være sorteret i stigende rækkefølge , fra den mindste til den største.

    Du kan finde flere oplysninger under VLOOKUP med nøjagtig match vs. VLOOKUP med tilnærmelsesvis match i VLOOKUP.

    IFS-erklæring som alternativ til en indlejret IF-funktion

    I Excel 2016 og senere versioner har Microsoft indført en særlig funktion til at evaluere flere betingelser - IFS-funktionen.

    En IFS-formel kan håndtere op til 127 logisk_test / value_if_true par, og den første logiske test, der evalueres til TRUE, "vinder":

    IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2]...)

    I overensstemmelse med ovenstående syntaks kan vores IF-formel rekonstrueres på denne måde:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)

    Vær opmærksom på, at IFS-funktionen returnerer #N/A-fejlen, hvis ingen af de angivne betingelser er opfyldt. For at undgå dette kan du tilføje endnu en logisk_test / value_if_true til slutningen af din formel, som returnerer 0 eller en tom streng ("") eller den værdi, du ønsker, hvis ingen af de foregående logiske tests er SAND:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")

    Resultatet er, at vores formel vil returnere en tom streng (tom celle) i stedet for #N/A-fejlen, hvis en tilsvarende celle i kolonne B er tom eller indeholder tekst eller et negativt tal.

    Bemærk. Ligesom i nestede IF returnerer Excels IFS-funktion en værdi svarende til den første betingelse, der evalueres til TRUE, hvilket er grunden til, at rækkefølgen af logiske test i en IFS-formel er vigtig.

    Du kan finde flere oplysninger i Excel IFS-funktionen i stedet for indlejret IF.

    CHOOSE i stedet for en IF-formel i Excel

    En anden måde at teste flere betingelser i en enkelt formel i Excel er ved hjælp af CHOOSE-funktionen, som er designet til at returnere en værdi fra listen baseret på en position for denne værdi.

    Når formlen anvendes på vores datasæt, får den følgende formular følgende form:

    =CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)

    I det første argument ( index_num ), evaluerer du alle betingelserne og lægger resultaterne sammen. Da TRUE er lig med 1 og FALSE med 0, beregner du på denne måde placeringen af den værdi, der skal returneres.

    For eksempel er værdien i B2 $150. For denne værdi er de første 3 betingelser SANDT og den sidste (B2> 150) er FALSK. Så, index_num er lig med 3, hvilket betyder, at den tredje værdi returneres, dvs. 7 %.

    Tip. Hvis ingen af de logiske test er SAND, index_num er lig med 0, og formlen returnerer fejlen #VALUE!. En nem løsning er at indpakke CHOOSE i IFERROR-funktionen på følgende måde:

    =IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 7%, 10%), "")

    Du kan finde flere oplysninger i Excel CHOOSE-funktionen med eksempler på formler.

    SWITCH-funktionen som en kortfattet form for indlejret IF i Excel

    I situationer, hvor du har at gøre med et fast sæt foruddefinerede værdier og ikke med skalaer, kan funktionen SWITCH være et kompakt alternativ til komplekse IF-meddelelser med indlejrede IF-sæt:

    SWITCH(udtryk, værdi1, resultat1, værdi2, resultat2, ..., [standard])

    Funktionen SWITCH evaluerer udtryk mod en liste over værdier og returnerer den resultat svarende til det første fundne match.

    Hvis du gerne vil beregne provisionen på baggrund af følgende karakterer i stedet for salgsbeløb, kan du bruge denne kompakte version af en IF-formel i Excel:

    =SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")

    Du kan også lave en referencetabel som vist i skærmbilledet nedenfor og bruge cellehenvisninger i stedet for hardkodede værdier:

    =SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, $G$5, "")

    Bemærk, at vi låser alle referencer undtagen den første med $-tegnet for at forhindre, at de ændres, når vi kopierer formlen til andre celler:

    Bemærk. Funktionen SKIFT er kun tilgængelig i Excel 2016 og nyere versioner.

    Du kan finde flere oplysninger i SWITCH-funktionen - den kompakte form for en indlejret IF-erklæring.

    Sammenkædning af flere IF-funktioner i Excel

    Som nævnt i det foregående eksempel blev funktionen SWITCH først indført i Excel 2016. For at håndtere lignende opgaver i ældre Excel-versioner kan du kombinere to eller flere IF-meddelelser ved at bruge operatoren Concatenate (&) eller funktionen CONCATENATE.

    For eksempel:

    =(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Eller

    =CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Som du måske har bemærket, multiplicerer vi resultatet med 1 i begge formler. Det sker for at konvertere en streng, der returneres af Concatenate-formlen, til et tal. Hvis dit forventede output er tekst, er det ikke nødvendigt at multiplicere.

    Du kan finde flere oplysninger under CONCATENATE-funktionen i Excel.

    Du kan se, at Microsoft Excel tilbyder en håndfuld gode alternativer til nested IF-formler, og forhåbentlig har denne vejledning givet dig nogle fingerpeg om, hvordan du kan udnytte dem i dine regneark. Hvis du vil se nærmere på de eksempler, der er behandlet i denne vejledning, er du velkommen til at downloade vores prøvearbejdsmappe nedenfor. Jeg takker dig for at læse og håber at se dig på vores blog i næste uge!

    Arbejdsbog til download

    Excel-elementer med indlejret If-erklæring - eksempler (.xlsx-fil)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.