Excel Nested IF-utsagn - eksempler, beste praksis og alternativer

  • Dele Denne
Michael Brown

Opplæringen forklarer hvordan du bruker den nestede IF-funksjonen i Excel for å sjekke flere forhold. Du vil også lære noen andre funksjoner som kan være gode alternativer til å bruke en nestet formel i Excel.

Hvordan implementerer du vanligvis en beslutningslogikk i Excel-regnearkene dine? I de fleste tilfeller vil du bruke en HVIS-formel for å teste tilstanden din og returnere én verdi hvis betingelsen er oppfylt, en annen verdi hvis betingelsen ikke er oppfylt. For å evaluere mer enn én betingelse og returnere forskjellige verdier avhengig av resultatene, legger du flere IF-er inne i hverandre.

Selv om den er veldig populær, er den nestede IF-setningen ikke den eneste måten å sjekke flere forhold i Excel. I denne opplæringen finner du en håndfull alternativer som absolutt er verdt å utforske.

    Excel nestet IF-setning

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

    HVIS( tilstand1, resultat1, HVIS( tilstand2, resultat2, HVIS( betingelse3, resultat3, resultat4)))

    Du kan se at hver påfølgende HVIS-funksjon er innebygd i verdi_hvis_falsk -argumentet til den forrige funksjonen. Hver HVIS-funksjon er omsluttet av sitt eget sett med parenteser, men alle avsluttende parenteser er på slutten av formelen.

    Vår generiske nestede HVIS-formel evaluerer 3 betingelser, og returnerer 4 forskjellige resultater (resultat 4 returneres hvis ingen avarbeidsbok for nedlasting

    Excel nestet If-setning - eksempler (.xlsx-fil)

    forholdene er SANN). Oversatt til et menneskelig språk, ber denne nestede IF-setningen Excel gjøre følgende:Test betingelse1, hvis TRUE - returner resultat1, hvis FALSE -

    test betingelse2 , hvis TRUE - returner r resultat2 , hvis FALSE -

    test betingelse3 , hvis TRUE - returner resultat3 , hvis FALSE -

    avkastning resultat4

    Som et eksempel, la oss finne ut provisjoner for en rekke selgere basert på mengden salg de har gjort:

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

    I matematikk endres ikke summen av å endre rekkefølgen på tillegg. Hvis du endrer rekkefølgen på IF-funksjoner i Excel, endres resultatet. Hvorfor? Fordi en nestet HVIS-formel returnerer en verdi som tilsvarer den første TRUE-betingelsen . Derfor, i dine nestede IF-setninger, er det veldig viktig å ordne forholdene i riktig retning - høy til lav eller lav til høy, avhengig av formelens logikk. I vårt tilfelle sjekker vi den "høyeste" tilstanden først, deretter den "nest høyeste", og så videre:

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

    Hvis vi plasserte betingelser i omvendt rekkefølge, fra bunnen og opp, ville resultatene være helt feil fordi formelen vår ville stoppe etter den første logiske testen (B2>=1) for enhver verdi større enn 1. La oss si at vi har $100i salg - den er større enn 1, så formelen vil ikke sjekke andre forhold og gi 3 % som resultat.

    Hvis du heller vil ordne forholdene fra lav til høy, så bruk "mindre enn " operatør og evaluer den "laveste" tilstanden først, deretter den "nest laveste", og så videre:

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

    Som du ser, krever det ganske mye omtanke for å bygge logikken av en nestet IF-setning korrekt helt til slutten. Og selv om Microsoft Excel tillater å legge inn opptil 64 IF-funksjoner i én formel, er det ikke noe du egentlig ønsker å gjøre i regnearkene dine. Så hvis du (eller noen andre) ser på den nestede IF-formelen din i Excel og prøver å finne ut hva den faktisk gjør, er det på tide å revurdere strategien din og sannsynligvis velge et annet verktøy i arsenalet ditt.

    For mer informasjon , vennligst se Excel nestede IF-setning.

    Nestet IF med OR/AND-betingelser

    Hvis du trenger å evaluere noen få sett med forskjellige betingelser, kan du uttrykke disse betingelsene ved å bruke OR samt AND-funksjon, nester funksjonene inne i IF-setninger, og nester deretter IF-setningene inn i hverandre.

    Nested IF i Excel med OR-setninger

    Ved å bruke OR-funksjonen kan du sjekke to eller flere forskjellige betingelser i den logiske testen av hver HVIS-funksjon og returner TRUE hvis noen (minst ett) av OR-argumentene evalueres til TRUE. For å se hvordan det faktisk fungerer, bør du vurderefølgende eksempel.

    Anta at du har to kolonner med salg, for eksempel januarsalg i kolonne B og februarsalg i kolonne C. Du ønsker å sjekke tallene i begge kolonnene og beregne provisjonen basert på et høyere tall. Med andre ord bygger du en formel med følgende logikk: hvis enten januar- eller februar-salget er større enn $150, får selgeren 10 % provisjon, hvis januar- eller februar-salget er større enn eller lik $101, får selgeren 7% provisjon , og så videre.

    For å få det gjort, skriv noen få OF-utsagn som OR(B2>150, C2>150) og sett dem inn i de logiske testene av IF-funksjonene diskutert ovenfor. Som et resultat får du denne formelen:

    =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å tildelt provisjonen basert på det høyere salgsbeløpet:

    For flere formeleksempler, se Excel IF OR-setning.

    Nested IF i Excel med AND-setninger

    Hvis de logiske testene inkluderer flere betingelser, og alle disse betingelsene skal evalueres til TRUE, uttrykk dem ved å bruke OG-funksjonen.

    For for eksempel å tildele provisjonene basert på et lavere antall salg, ta formelen ovenfor og erstatte ELLER med OG-utsagn. For å si det annerledes, ber du Excel om å returnere 10 % bare hvis salg i januar og februar er større enn $150, 7% hvis salg i januar og februar er større enn eller lik $101, og så videre.

    =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%, ""))))

    Som et resultat beregner vår nestede IF-formel provisjonenbasert på det lavere tallet i kolonnene B og C. Hvis en av kolonnene er tom, er det ingen provisjon i det hele tatt fordi ingen av OG-betingelsene er oppfylt:

    Hvis du' ønsker å returnere 0% i stedet for tomme celler, erstatt en tom streng (''") i det siste argumentet 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%))))

    Mer informasjon finner du her: Excel IF med flere OG/ELLER-betingelser.

    VLOOKUP i stedet for nestet IF i Excel

    Når du har å gjøre med "skalaer", dvs. kontinuerlige områder av numeriske verdier som til sammen dekker hele området, i de fleste tilfeller kan du bruke VLOOKUP-funksjonen i stedet for nestede IF-er.

    For det første, lag en referansetabell som vist i skjermbildet nedenfor. Og bygg deretter en Vlookup-formel med omtrentlig samsvar , dvs. med range_lookup -argumentet satt til TRUE.

    Forutsatt at oppslagsverdien er i B2 og referansetabellen er F2:G5, går formelen som følger :

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

    Vær oppmerksom på at vi fikser tabellmatrisen med absolutte referanser ($F$2:$G$5) for at formelen skal kopieres riktig til andre celler:

    Ved å sette det siste argumentet i Vlookup-formelen til TRUE, ber du Excel søk etter nærmeste samsvar - hvis et eksakt samsvar ikke blir funnet, returner den nest største verdien som er mindre enn oppslagsverdien. Som et resultat vil formelen din matche ikke bare de eksakte verdiene i oppslagstabellen, men også alleverdier som faller imellom.

    For eksempel er oppslagsverdien i B3 $95. Dette nummeret finnes ikke i oppslagstabellen, og Vlookup med eksakt samsvar vil returnere en #N/A feil i dette tilfellet. Men Vlookup med omtrentlig samsvar fortsetter å søke til den finner den nærmeste verdien som er mindre enn oppslagsverdien (som er $50 i vårt eksempel) og returnerer en verdi fra den andre kolonnen i samme rad (som er 5%).

    Men hva om oppslagsverdien er mindre enn det minste tallet i oppslagstabellen eller oppslagscellen er tom? I dette tilfellet vil en Vlookup-formel returnere #N/A-feilen. Hvis det ikke er det du faktisk vil ha, nest VLOOKUP inne IFERROR og oppgi verdien til utdata når oppslagsverdien ikke er funnet. For eksempel:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")

    Viktig merknad! For at en Vlookup-formel med omtrentlig samsvar skal fungere riktig, må den første kolonnen i oppslagstabellen sorteres i stigende rekkefølge , fra minste til største.

    For mer informasjon, se Eksakt samsvar VLOOKUP vs. omtrentlig samsvar VLOOKUP.

    IFS-setning som alternativ til nestet IF-funksjon

    I Excel 2016 og senere versjoner introduserte Microsoft en spesiell funksjon for å evaluere flere forhold - IFS-funksjonen.

    En IFS-formel kan håndtere opptil 127 logical_test / value_if_true -par, og den første logiske testen som evalueres til TRUE "vinner":

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

    I samsvar med syntaksen ovenfor, kan vår nestede IF-formel rekonstrueres på denne måten:

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

    Vær oppmerksom på at IFS-funksjonen returnerer #N/A-feilen hvis ingen av de angitte betingelsene er oppfylt. For å unngå dette kan du legge til en logical_test / value_if_true til på slutten av formelen din som vil returnere 0 eller tom streng ("") eller hvilken verdi du ønsker hvis ingen av tidligere logiske tester er SANN:

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

    Som resultat vil formelen vår returnere en tom streng (tom celle) i stedet for #N/A-feilen hvis en tilsvarende celle i kolonne B er tom eller inneholder tekst eller negativt tall.

    Merk. I likhet med nestet IF, returnerer Excels IFS-funksjon en verdi som tilsvarer den første betingelsen som evalueres til TRUE, og det er grunnen til at rekkefølgen på logiske tester i en IFS-formel er viktig.

    For mer informasjon, se Excel IFS-funksjonen i stedet. av nestet IF.

    VELG i stedet for nestet HVIS-formel i Excel

    En annen måte å teste flere forhold innenfor en enkelt formel i Excel er å bruke VELG-funksjonen, som er utformet for å returnere en verdi fra listen basert på en posisjon med den verdien.

    Anvendt på eksempeldatasettet vårt har formelen følgende form:

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

    I det første argumentet ( index_num ), evaluerer du alle betingelsene og legger sammen resultatene. Gittat TRUE tilsvarer 1 og FALSE til 0, på denne måten beregner du posisjonen til verdien som skal returneres.

    For eksempel er verdien i B2 $150. For denne verdien er de tre første betingelsene SANN og den siste (B2> 150) er FALSK. Så indeksnummer er lik 3, noe som betyr at den tredje verdien returneres, som er 7%.

    Tips. Hvis ingen av de logiske testene er SANN, er indeksnummer lik 0, og formelen returnerer #VERDI! feil. En enkel løsning er å pakke VELG inn i IFERROR-funksjonen slik:

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

    For mer informasjon, se Excel-funksjonen VELG med formeleksempler.

    SWITCH-funksjon som en kortfattet form for nestet IF i Excel

    I situasjoner der du har å gjøre med et fast sett med forhåndsdefinerte verdier, ikke skalaer, kan SWITCH-funksjonen være et kompakt alternativ til komplekse nestede IF-setninger:

    SWITCH(uttrykk, verdi1, resultat1, verdi2, resultat2, …, [standard])

    SWITCH-funksjonen evaluerer uttrykk mot en liste med verdier og returnerer resultatet som tilsvarer det første funnet treffet.

    Hvis du ønsker å beregne provisjonen basert på følgende karakterer, i stedet for salgsbeløp, kan du bruke denne kompakte versjon av nestet IF-formel i Excel:

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

    Eller du kan lage en referansetabell som vist i skjermbildet nedenfor og bruke cellereferanser i stedet for hardkodede verdier:

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

    VennligstLegg merke til at vi låser alle referanser unntatt den første med $-tegnet for å forhindre at de endres når formelen kopieres til andre celler:

    Merk. SWITCH-funksjonen er bare tilgjengelig i Excel 2016 og nyere.

    For mer informasjon, se SWITCH-funksjonen - den kompakte formen for nestet IF-setning.

    Sett sammen flere IF-funksjoner i Excel

    Som nevnt i det forrige eksempelet ble SWITCH-funksjonen introdusert kun i Excel 2016. For å håndtere lignende oppgaver i eldre Excel-versjoner, kan du kombinere to eller flere IF-setninger ved å bruke Concatenate-operatoren (&) eller CONCATENATE-funksjonen .

    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 kanskje har lagt merke til, multipliserer vi resultatet med 1 i begge formlene. Det gjøres for å konvertere en streng returnert av Concatenate-formelen til et tall. Hvis det forventede resultatet er tekst, er ikke multiplikasjonsoperasjonen nødvendig.

    For mer informasjon, se CONCATENATE-funksjonen i Excel.

    Du kan se at Microsoft Excel gir en håndfull gode alternativer til nestede IF-formler, og forhåpentligvis har denne opplæringen gitt deg noen ledetråder om hvordan du kan utnytte dem i regnearkene dine. For å se nærmere på eksemplene som er diskutert i denne opplæringen, er du velkommen til å laste ned vår eksempelarbeidsbok nedenfor. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

    Øv

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.