Funktionen HVIS – indlejrede formler og undgåelse af fejl

Gælder for
Excel til Microsoft 365 Excel til Microsoft 365 til Mac Excel 2024 Excel 2024 til Mac Excel 2021 Excel 2021 til Mac Excel 2019 Excel 2016 Excel Web App Excel til Windows Phone 10

HVIS-funktionen gør det muligt at foretage en logisk sammenligning mellem en værdi, og hvad du forventer, ved at teste for en betingelse og returnere et resultat, hvis udfaldet er Sandt eller Falskt.

  • =HVIS(Noget er sandt, så gør noget, ellers gør noget andet)

Så en HVIS-sætning kan have to resultater. Det første resultat er, hvis din sammenligning er Sand, det andet hvis din sammenligning er Falsk.

HVIS-sætninger er utroligt robuste og danner grundlag for mange regnearksmodeller, men de er også hovedårsagen til mange problemer i regneark. Ideelt set bør en HVIS-sætning gælde for minimale betingelser, f.eks. Han/Hun, Ja/Nej/Måske, for at nævne nogle få, men nogle gange kan det være nødvendigt at evaluere mere komplekse scenarier, der kræver indlejring* af flere end 3 HVIS-funktioner.

* "Indlejring" er at sætte flere funktioner sammen i en formel.

Tekniske detaljer

Brug funktionen HVIS, som er en af de logiske funktioner, til at få returneret én værdi, hvis en betingelse er sand, og en anden værdi, hvis den er falsk.

Syntaks

HVIS(logisk_test, værdi_hvis_sand, [værdi_hvis_falsk])

Det kunne f.eks. være:

  • =HVIS(A2>B2;"Overskredet budget";"OK")
  • =HVIS(A2=B2,B4-A4,"")
Argumentnavn Beskrivelse
logisk_test
(påkrævet)
Den betingelse, du vil teste.
værdi_hvis_sand
(påkrævet)
Den værdi, der skal returneres, hvis resultatet af logical_test er SAND.
værdi_hvis_falsk
(valgfrit)
Den værdi, der skal returneres, hvis resultatet af logical_test er FALSK.

Bemærkninger

Mens Excel gør det muligt for dig at indlejre op til 64 forskellige HVIS-funktioner, kan det slet ikke anbefales at gøre dette. Hvorfor?

  • Det kræver en hel del omtanke at bygge flere HVIS-sætninger korrekt og sørge for, at deres logik kan regne korrekt gennem hver enkel betingelse helt til slut. Hvis du ikke har indlejret dine formler helt korrekt, fungerer de muligvis i 75 % af tilfældene, men returnerer uventede resultater i 25 % af tilfældene. Det er desværre meget sandsynlig, at du ikke kan finde disse 25 %.
  • Det kan være utroligt svær at vedligeholde flere HVIS-sætninger, især når du vender tilbage på et senere tidspunkt og forsøger at finde ud af, hvad du, eller værre, en anden, har forsøgt af udføre.

Hvis du sidder med en HVIS-sætning, der bare bliver længere og længere, er det på tide at lægge musen og genoverveje din strategi.

Lad os se på, hvordan du opretter en kompleks indlejret HVIS-sætning korrekt ved hjælp af flere HVIS-udtryk, og hvornår det er tid til at erkende, at nu skal der anvendes et andet værktøj i Excel.

Eksempler

Følgende er et eksempel på en relativt almindelig indlejret HVIS-sætning til konvertering af studerendes prøveresultater til deres tilsvarende bogstavkarakter.

Komplekst indlejret HVIS-sætning – formlen i E2 er =HVIS(B2>97,A+,HVIS(B2>93,A,HVIS(B2>89,A-,HVIS(B2>87,B+,HVIS(B2>83,B,HVIS(B2>79,B-,HVIS(B2>77,C+,HVIS(B2>73,C,HVIS(B2 69,C-,HVIS(B2>>57,D+,HVIS(B2>53,D,HVIS(B2>49,D-, F))))))))))))

  • =HVIS(D2>89,"A",HVIS(D2>79,"B",HVIS(D2>69,"C",HVIS(D2>59,"D","F"))))
    Denne komplekse indlejrede HVIS-sætning følger en ligefrem logik:
  1. Hvis prøveresultatet (i celle D2) er større end 89, får den studerende et A
  2. Hvis prøveresultatet er større end 79, får den studerende et B
  3. Hvis prøveresultatet er større end 69, får den studerende et C
  4. Hvis prøveresultatet er større end 59, får den studerende et D
  5. Ellers får den studerende et F

Dette eksempel er relativt sikkert, da det er usandsynligt, at korrelationen mellem prøveresultater og bogstavkarakterer ændres, så det kræver ikke meget vedligeholdelse. Men her er en idé – hvad hvis du har brug for at opdele karaktererne mellem A+, A og A- (og så videre)? Nu skal din HVIS-sætning med fire betingelser omskrives til at rumme 12 betingelser! Her kan du se, hvordan din formel vil se ud nu:

  • =HVIS(B2>97,"A+",HVIS(B2>93,"A",HVIS(B2>89,"A-",HVIS(B2 87,"B+>",HVIS(B2>83,"B",HVIS(B2 79,"B-", HVIS(B2>>77,"C+",HVIS(B2>73,"C",HVIS(B2>69,"C-",HVIS(B2>57,"D+",HVIS(B2 53,"D",HVIS(B2>>49,"D-","F"))))))))))))

Det er stadig funktionelt nøjagtigt og fungerer som forventet, men det tager lang tid at skrive og længere tid at teste for at sikre, at den gør det, du ønsker. Et andet iøjnefaldende problem er, at du blev nødt til selv at skrive point og tilsvarende bogstavkarakterer i hånden. Hvad er sandsynligheden for, at du utilsigtet laver en slåfejl? Forestil dig nu, at du gør dette 64 gange med mere komplekse betingelser! Naturligvis er det muligt, men vil du virkelig udsætte dig selv for sådanne anstrengelser og mulige fejl, som er meget svære at få øje på?

Tip

Hver funktion i Excel kræver en venstre- og højreparentes (). Excel vil forsøge at hjælpe dig med at finde ud af, hvad der skal stå hvor, ved at farvelægge forskellige dele af din formel, når du redigerer den. Hvis du f.eks. vil redigere ovenstående formel, og du flytter markøren forbi hver af højreparenteserne ")", så vil den tilsvarende venstreparentes skifte til den samme farve. Dette kan være særligt nyttigt i komplekse indlejrede formler, når du forsøger at finde ud af, om du har et tilstrækkeligt antal matchende parenteser.

Yderligere eksempler

Følgende er et meget almindeligt eksempel på beregning af Salgsprovision, som er baseret på opnåede indtægtsniveauer.

Formlen i celle D9 er HVIS(C9 15000,20%,HVIS(C9 12500,17.5%,HVIS(C9>10000,15%,HVIS(C9>7500,12.5%,HVIS(C9>5000,10%,0)))))>>

  • =HVIS(C9 15000,20%,HVIS(C9 12500,17.5%,HVIS(C9>10000,15%,HVIS(C9>7500,12.5%,HVIS(C9>5000,10%,0)))))>>

Denne formel siger, at HVIS (C9 er større end 15.000, så returner 20 %, HVIS (C9 er større end 12.500, så returner 17,5 % osv.

Dette svarer til det tidligere eksempel med karakterer, men denne formel er et godt eksempel på, hvor svært det kan være at vedligeholde store HVIS-sætninger – hvad vil du gøre, hvis din virksomhed f.eks. beslutter sig for at tilføje nye lønniveauer og muligvis endda ændrer værdierne for beløb eller procentdel? Du ville få en masse arbejde foran dig!

Tip

Du kan indsætte et linjeskift i formellinjen for at gøre det lettere at læse lange formler. Tryk på ALT+ENTER før teksten, du vil ombryde til en ny linje.

Her er et eksempel på provisionsscenariet med en fejlagtig logik:

Formlen i D9 er i uorden som =HVIS(C9>5000,10%,HVIS(C9>7500,12.5%,HVIS(C9>10000,15%,HVIS(C9>12500,17.5%,HVIS(C9>15000,20%,0))))) Kan du se, hvad der er galt? Sammenlign rækkefølgen af indtægtssammenligninger med det forrige eksempel. Hvilken vej går dette? Det er rigtigt, det går fra bunden og op ($5.000 til $15.000), ikke omvendt. Men hvorfor skulle det være så stor en ting? Det er en stor ting, fordi formlen ikke kan bestå den første evaluering for nogen værdi over DKK 5.000. Lad os sige, at du har DKK 12.500 i omsætning – HVIS-sætningen returnerer 10 %, fordi den er større end DKK 5.000, og den stopper der. Dette kan være utroligt problematisk, fordi denne type fejl i mange situationer går ubemærket hen, før de har haft en negativ indvirkning. Så når du ved, at der er nogle alvorlige faldgruber med komplekse indlejrede HVIS-sætninger, hvad kan du så gøre? I de fleste tilfælde kan du bruge funktionen LOPSLAG i stedet for at opbygge en kompleks formel med funktionen HVIS. Ved hjælp af LOPSLAG skal du først oprette en referencetabel:

Formlen i celle D2 er =VLOOKUP(C2,C5:D17,2,TRUE)

  • =VLOOKUP(C2,C5:D17,2,SAND)

Denne formel vil søge efter værdien i C2 i området C5:C17. Hvis værdien findes, returneres den tilsvarende værdi fra den samme række i kolonne D.

Formlen i celle C9 er =VLOOKUP(B9,B2:C6,2,TRUE)

  • =VLOOKUP(B9,B2:C6,2,SAND)

På samme måde søger denne formel efter værdien i celle B9 i området B2:B22. Hvis værdien findes, returneres den tilsvarende værdi fra den samme række i kolonne C.

Bemærk

Begge disse LOPSLAG bruger argumentet SAND i slutningen af formlerne, hvilket betyder, at de skal lede efter et tilnærmet match. Med andre ord svarer det til de præcise værdier i opslagstabellen samt eventuelle værdier, der ligger mellem dem. I dette tilfælde skal opslagstabellerne være sorteret i stigende rækkefølge fra mindst til størst.

LOPSLAG er beskrevet meget mere detaljeret her, men dette er helt sikkert meget enklere end en kompleks indlejret HVIS-sætning med 12 niveauer! Der er også andre fordele:

  • LOPSLAG referencetabeller er helt åbne og nemme for alle at se.
  • Tabelværdier kan nemt opdateres, og du behøver aldrig at røre formlen, hvis dine betingelser ændres.
  • Hvis du ikke vil have folk til at se eller blande sig i referencetabellen, kan du blot anbringe den i et andet regneark.

Vidste du?

Der findes nu en HVISER-funktion, der kan erstatte flere indlejrede HVIS-sætninger med en enkelt funktion. Så i stedet for vores indledende karaktereksempel, som har 4 indlejrede HVIS-funktioner:

  • =HVIS(D2>89,"A",HVIS(D2>79,"B",HVIS(D2>69,"C",HVIS(D2>59,"D","F"))))

Kan det gøres meget enkelt med en enkelt HVISER-funktion:

  • =HVISER(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",SAND,"F")

Funktionen HVISER er god, fordi du ikke behøver at bekymre dig om alle HVIS-sætningerne og parenteserne.

Bemærk

Denne funktion er kun tilgængelig, hvis du har et Microsoft 365-abonnement. Hvis du er en Microsoft 365-abonnent, skal du sørge for, at du har den seneste version af Office.

Har du brug for mere hjælp?

Du kan altid spørge en ekspert i Excel Tech Community eller få support i Communities.