Slik bruker du flere IF-setninger i Microsoft Excel
Bildekreditt: monkeybusinessimages/iStock/GettyImages
En IF-setning i Excel kjører en logisk test som returnerer én verdi hvis en betingelse er oppfylt og en annen verdi hvis den ikke er det. Å bruke en enkelt Excel IF-setning kan bare håndtere grunnleggende operasjoner, men hvis du legger inn flere IF-setninger, kan du utføre kompliserte oppgaver. Den eneste ulempen er at du må være forsiktig når du konstruerer formelen for å unngå å gjøre feil. Alternative Excel-funksjoner kan gjøre den samme jobben med mindre risiko for feil. Lær det grunnleggende om nestede IF-setninger i Excel og alternativene for å finne den beste tilnærmingen for dine behov.
Forstå Excel IF-erklæringen
HVIS-funksjonen i Excel sier i hovedsak "hvis dette er sant, returner x-verdi, men hvis den ikke er det, returner y-verdi." For eksempel hvis du sjekket om ulike avdelinger i virksomheten din var under eller over budsjett, kan du sammenligne utgiftene deres med budsjettene deres ved å bruke funksjonen og få den til å returnere "Over budsjett" hvis avdelingen brukte for mye eller "Innenfor budsjett" hvis den gjorde det ikke. Generelt sett bruker du sammenligningsoperatorer for å danne utsagnet ditt, for eksempel:
Dagens video
- = (lik)
(større enn)
= (større enn eller lik)
- < (mindre enn)
- <= (mindre enn eller lik)
- <> (ikke lik)
Å forstå syntaksen til Excel IF-setningen er et avgjørende skritt mot å lære å bruke den riktig. Formatet for funksjonen er HVIS(logisk_test, verdi_hvis_sann, [verdi_hvis_falsk]) hvor hakeparentesene indikerer at dette siste argumentet er valgfritt. Disse er enkle å tolke: The logisk_test betyr utsagnet du vil teste, verdi_hvis_sant er stedet for det du vil at Excel skal vise om testen er sann, og [value_if_false] er det valgfrie stedet for det du vil at Excel skal vise hvis testen er falsk.
Dette er nok til at du kan bruke Excel-formelen for hvis-da-utsagn, som kan demonstreres ved å bruke eksempelet "Over budsjett/innenfor budsjett" fra tidligere. Tenk deg at du har beløpet brukt av ulike avdelinger i kolonne B og beløpet budsjettert i kolonne C, med verdiene som starter på den andre raden. I celle D2 skriver du =HVIS(B2>C2, "Over budsjett", "Innenfor budsjett") for å returnere resultatet du leter etter (merk at du må bruke anførselstegn for å få det til å returnere teksten inni). Den første delen sier "hvis verdien i B2 er større enn verdien i C2" (hvis utgiften er større enn budsjettet), den andre delen sier "så returner teksten Over budsjettet og den tredje delen sier "hvis ikke, så kom tilbake Innenfor budsjett."
Nesting av flere IF-utsagn
Å få mest mulig ut av Excel IF-setningsverktøyet betyr å kunne kombinere flere IF-setninger når du har en oppgave som passer for det. Du kan inkludere en andre IF-setning i den opprinnelige IF-setningen, og du kan inkludere en annen IF-setning i den og så videre. Dette er spesielt nyttig hvis du vil kategorisere noe i en av flere grupper ved å bruke en enkelt formel. Du kan for eksempel bruke nestede IF-utsagn til å konvertere poengsummene elevene oppnådde på en test til en karakter.
For å bruke flere IF-setninger riktig, tenk på logikken i det du ber Excel om å gjøre. I hovedsak, etter tilstanden din (det første argumentet i funksjonen), kan du legge til en annen IF-setning i verdi_hvis_sant eller verdi_hvis_falsk mellomrom, for å fortelle Excel hva du skal gjøre videre. Tenk på dette som å få Excel til å sjekke cellen mot et andre kriterium hvis den aktuelle cellen ikke gjør det oppfyller det første kriteriet (eller faktisk, hvis det oppfyller det første), og du kan fortsette denne prosessen lenge tid. Med andre ord, du gjør "hvis dette, så det" til "hvis dette og dette, så det" eller "hvis ikke dette, men dette, så det."
Et eksempel på Nested IF-funksjon
Tenk deg at du har gitt elevene en test der poengsum på 85 prosent eller høyere er en A, mellom 70 og 85 prosent er en B, mellom 55 og 70 prosent er en C, mellom 40 prosent og 55 prosent er en D og alt lavere er en Mislykket. Poengsummene er i kolonne B, fra rad 2 til rad 11. Du kan bruke en nøye konstruert Excel IF-funksjon med flere betingelser for å kategorisere elevenes poengsum.
Den første delen er enkel (for en poengsum i B2, i dette eksemplet): =HVIS(B2>=85; "A") ber Excel om å returnere en A hvis studenten fikk 85 eller høyere. Nesting lar deg legge til andre karakterer, ved å bruke det tredje argumentet (hva du skal gjøre hvis betingelsen er usann) for å legge til ekstra betingelser: =HVIS(B2>=85, "A", HVIS(B2>=70, "B")), som forteller Excel å returnere en A for poengsum på 85 eller høyere, men hvis ikke, returner en B hvis poengsummen er over 70. Fortsett på denne måten for å fullføre formelen, bruk det tredje argumentet for en ny IF-setning hver gang: =HVIS(B2>=85, "A", HVIS(B2>=70, "B",IF(B2>=55, "C", HVIS(B2>=40, "D", "Feil")) ))
Dette ser komplisert ut, så å bryte det ned bør sementere ideen. De to første argumentene sier "hvis poengsummen i B2 er 85 eller mer, så får eleven en A," og den tredje sier: "ellers, sjekk følgende betingelse." De andre IF fører til denne påstanden, "(for elever som skårer mindre enn 85) hvis poengsummen i B2 er 70 eller høyere, får studenten en B, og hvis ikke sjekk følgende betingelse." Den tredje IF sier: "(for elever som scorer mindre enn 70) hvis poengsummen i B2 er 55 eller høyere, får studenten som scoret en C, og hvis ikke, sjekk følgende betingelse" og den fjerde sier "(for elever som skårer mindre enn 55) hvis poengsummen i B2 er høyere enn 40, får studenten en D, hvis ikke, studenten mislykkes."
Feilkoder for IF-uttalelser
Forutsatt at du skriver inn formelen for IF-setningen din riktig, vil den returnere et av alternativene du har gitt til Excel. Men hvis du gjør en feil, kan formelen returnere en 0 eller #NAVN? i cellen som inneholder formelen din.
EN 0 feil betyr at enten verdi_hvis_sant eller verdi_hvis_falsk argumentet er tomt. Løs dette problemet ved å sørge for at en verdi er angitt i begge argumentene, eller i det minste i verdi_hvis_sant argument. De verdi_hvis_falsk argumentet kan fjernes fullstendig, og det vil returnere FALSE hvis du ikke setter et andre komma etter verdi_hvis_sant felt.
EN #NAVN? feilen forteller deg at du sannsynligvis har skrevet feil eller skrevet feil i formelen. Dette kan være litt vanskeligere å fikse fordi det kan være hvilken som helst del av formelen, men det beste rådet er å dobbeltsjekke alt eller skrive ut formelen på nytt.
Vanlige problemer med nestede IF-uttalelser
Det forrige eksemplet med nestede IF-funksjonsformel ble ganske lang, noe som er en av de største ulempene ved å bruke flere IF-setninger i Excel. De kan bli kompliserte, og det er lett å gjøre feil fordi du må følge logikken nøye for å være sikker på at alt fungerer slik du har tenkt. Microsoft påpeker at en feil nestet formel til og med kan returnere riktig resultat mesteparten av tiden, men feil resultater i sjeldne tilfeller. Disse er vanskelige å få øye på.
Å ikke sette forholdene i riktig rekkefølge er en vanlig feil. I eksemplet med graderte tester, hvis du startet med den laveste poengsummen =HVIS(B2>=40, "D", …" og fortsatte med å liste de andre i stigende rekkefølge, til og med en poengsum på 100 ville returnere en D. Dette er fordi den første betingelsen sjekkes først, så hvis du startet med "hvis celle B2 er 40 eller høyere, returner en D" den vil klassifisere enhver poengsum på 40 eller over som en D uten å sjekke noe annet fordi den møter den første tilstand. Dette er et perfekt eksempel på hvorfor du må følge logikken i formelen din gjennom.
Du må også sørge for at du legger til riktig antall parenteser på slutten av flere IF-setninger for å lukke formelen ordentlig. Excel hjelper med dette ved å fargekoordinere og fremheve parentesene mens du arbeider.
Maksimalt antall nestede IF-er
Teknisk sett kan du legge inn opptil 64 IF-funksjoner i en enkelt formel, men Microsoft anbefaler ikke å bruke funksjonen som dette av grunnene ovenfor. Ting blir raskt kompliserte, og sjansene er store, hvis du prøver å bygge mer enn 10 IF-setninger, er det sannsynligvis et bedre verktøy for jobben inkludert i Excel allerede.
IFS-funksjonen i Excel
Det mest praktiske alternativet til IF-funksjonen er IFS-funksjonen, som er en versjon av funksjon som utfører samme oppgave som nesting i en enkelt funksjon og kan håndtere opptil 127 forhold. IFS-funksjonen har en enklere syntaks: =IFS(logisk_test1, verdi_hvis_sann1, [logisk_test2, verdi_hvis_sann2], [logisk_test3, verdi_hvis_sann3]...) og så videre. I hovedsak fungerer dette som nestede IF-setninger, bortsett fra at påfølgende IF-setninger opptar plassen etter "verdien hvis sant" uten å måtte hente opp funksjonen igjen.
Formelen i prøvekaraktereksemplet kan skrives mye enklere med IFS-funksjonen. I stedet for:
=HVIS(B2>=85, "A", HVIS(B2>=70, "B",IF(B2>=55, "C", HVIS(B2>=40, "D", "Feil")) ))
bare skriv
=IFS(B2>=85, "A", B2>=70, "B", B2>=55, "C", B2>=40, "D", TRUE, "Fail")
De EKTE i punktet før sist sier "hvis ingen av de andre verdiene er oppfylt, returner neste verdi."
Denne funksjonen er bare tilgjengelig i Excel 2019 eller Excel for Office 365.
VLOOKUP-funksjonen
VLOOKUP-funksjonen i Excel er ofte et enklere alternativ til flere IF-setninger og er tilgjengelig på alle versjoner av Excel fra 2007 og fremover. Det er ikke ideelt for alle situasjoner fordi det enten returnerer resultater for en eksakt match eller for nærmest nummer, så det kunne ikke brukes for karakterer som i forrige eksempel. Men i mange situasjoner kan det spare deg for mye arbeid med å skrive ut en formel, selv om du må konstruere en tabell med mulige verdier i én kolonne, for eksempel produkter butikken din selger, og hva du vil at funksjonen skal returnere, for eksempel prisen på produktet, i en annen kolonne, for eksempel.
Syntaksen for VLOOKUP er =VLOOKUP(oppslagsverdi, tabellmatrise, kolonneindeksnummer, [områdeoppslag]) og lære hver av komponentene viser deg hvordan du bruker den. De oppslagsverdi argument er verdien du vil sjekke, som må være en celle i samme kolonne som starten på tabellen du vil sjekke den mot, enten over eller under. De table_array er utvalget av celler som inneholder informasjonstabellen din, for eksempel produkter og deres tilsvarende priser, og col_index_num er kolonnen du vil at Excel skal se i for å finne verdien å returnere, med 1 som indikerer kolonnen lengst til venstre, 2 angir den neste og så videre. Til slutt, [range_lookup] er valgfritt, men skriv inn "TRUE" hvis du vil at Excel skal basere svaret på den nærmeste verdien eller "FALSE" hvis du bare vil ha eksakt samsvar.