HVIS-funksjonen i Excel – slik bruker du den
Kort svar
HVIS tester om noe stemmer, og gir ett svar hvis det stemmer og et annet hvis det ikke gjør det. Formelen er =HVIS(betingelse; verdi_hvis_sann; verdi_hvis_usann), for eksempel =HVIS(B2>=100000; "Over mål"; "Under mål"). Skal du teste flere ting samtidig, kombinerer du med OG eller ELLER – og har du mange nivåer, er HVIS.SETT eller en oppslagstabell som regel bedre enn nøstede HVIS.
HVIS er den første funksjonen de fleste lærer utover SUMMER, og den som oftest blir bygget større enn den burde. Her er både grunnbruken og grensen for når du bør velge noe annet.
Slik er formelen bygget opp
=HVIS(betingelse; verdi_hvis_sann; verdi_hvis_usann)
Betingelsen er et spørsmål Excel kan svare ja eller nei på: er tallet større enn noe, er teksten lik noe, er cellen tom. De to andre argumentene er hva som skal stå i cellen i hvert av tilfellene.
=HVIS(B2>=100000; "Over mål"; "Under mål")
Tekst må stå i anførselstegn. Tall skal ikke ha det – skriver du "100000" med
anførselstegn, blir det tekst, og da regner ikke Excel videre på det.
Operatorene du kan bruke i betingelsen
| Operator | Betyr | Eksempel |
|---|---|---|
= |
Lik | =HVIS(C2="Fullført"; ...) |
<> |
Ulik | =HVIS(C2<>"Fullført"; ...) |
> |
Større enn | =HVIS(B2>0; ...) |
>= |
Større enn eller lik | =HVIS(B2>=100000; ...) |
< |
Mindre enn | =HVIS(B2<0; ...) |
<= |
Mindre enn eller lik | =HVIS(B2<=30; ...) |
Tom celle i stedet for tekst? Bruk to anførselstegn uten noe imellom:
=HVIS(B2>=100000; "Bonus"; ""). Cellen ser tom ut, men inneholder teknisk sett
en tom tekst – noe som kan påvirke ANTALL, ERTOM og enkelte diagrammer.
Resultatet kan være en beregning
Argumentene trenger ikke være tekst. Det vanligste i praksis er at HVIS velger mellom to utregninger:
=HVIS(B2>=100000; B2*0,06; B2*0,02)
Du kan også la den ene grenen være en annen formel helt:
=HVIS(C2="Faktura"; XOPPSLAG(A2; Kunder[Nr]; Kunder[Navn]; ""); "")
Merk at Excel bare beregner den grenen som faktisk brukes. Det er derfor
=HVIS(B2=0; ""; A2/B2) er trygt – divisjonen skjer aldri når B2 er null.
Flere betingelser samtidig
Skal begge betingelsene være oppfylt, bruker du OG. Holder det at én av dem er det, bruker du ELLER:
=HVIS(OG(B2>=100000; C2="Fullført"); "Utbetal bonus"; "Ikke ennå")
=HVIS(ELLER(B2>=100000; C2="Nøkkelkunde"); "Prioriter"; "Vanlig")
Du kan ha flere betingelser inne i OG og ELLER, adskilt med semikolon. Vær forsiktig med å blande dem i samme formel – da blir det fort uklart hva som egentlig testes.
IKKE snur en betingelse:
=HVIS(IKKE(C2="Avsluttet"); "Aktiv"; "Arkivert")
Det gir det samme som C2<>"Avsluttet", og du bør velge den varianten som er
lettest å lese høyt.
Test om verdien ligger i et intervall
Dette er det vanligste OG-tilfellet, og også det folk oftest skriver feil:
=HVIS(OG(B2>=1000; B2<5000); "Mellomstor"; "Annet")
Bruk < i den ene enden av hvert intervall. Skriver du <=5000 her, og
>=5000 i neste regel, hører 5000 hjemme to steder.
Flere utfall enn to
Trenger du mer enn to svar, er det her det pleier å gå galt. Den klassiske løsningen er å nøste HVIS inni hverandre:
=HVIS(B2>=100000; "A"; HVIS(B2>=50000; "B"; HVIS(B2>=25000; "C"; "D")))
Dette virker, men blir tungt å lese og enda tyngre å endre. Har du Microsoft 365 eller Excel 2019 og nyere, skriver du det heller med HVIS.SETT:
=HVIS.SETT(B2>=100000; "A"; B2>=50000; "B"; B2>=25000; "C"; SANN; "D")
Argumentene leses parvis: betingelse, resultat, betingelse, resultat. SANN til
slutt fungerer som «alt annet». Uten den får du #I/T for verdier som ikke
treffer noen av betingelsene.
Rekkefølgen betyr alt. Både HVIS og HVIS.SETT stopper ved første treff.
Setter du B2>=25000 først, havner alle over 100 000 også i kategori C – uten at
Excel sier fra.
Bedre alternativ: legg grensene i en tabell
Skal grensene kunne endres uten at noen må redigere en formel, legger du dem i et lite oppslagsområde i stedet:
| Grense | Kategori |
|---|---|
| 0 | D |
| 25000 | C |
| 50000 | B |
| 100000 | A |
=XOPPSLAG(B2; $E$2:$E$5; $F$2:$F$5; ""; -1)
-1 som samsvarsmodus betyr «nærmeste verdi som er mindre enn eller lik». Nå
justerer du bonusgrensene ved å endre et tall i tabellen, ikke ved å skrive om
formelen i 400 rader. Se
XOPPSLAG i Excel for hvordan funksjonen fungerer
ellers.
Dette er nesten alltid riktig valg når kategoriene er forretningsregler som kan endre seg – prisgrenser, rabattrinn, purregebyrer. Formelen forblir den samme i årevis, og den som skal justere en grense trenger ikke forstå Excel-formler i det hele tatt.
HVIS på tekst
Inneholder cellen en bestemt tekst?
= tester om hele innholdet er likt. Skal du finne ut om teksten inneholder
noe, bruker du SØK sammen med ERTALL:
=HVIS(ERTALL(SØK("faktura"; A2)); "Faktura"; "Annet")
SØK skiller ikke mellom store og små bokstaver. Vil du at det skal gjøre det,
bruker du FINN i stedet. ERTALL trengs fordi SØK gir #VERDI! når teksten ikke
finnes.
Skille store og små bokstaver
=HVIS(A2="ja"; ...) treffer også "JA" og "Ja". Skal du skille dem, må du
bruke EKSAKT:
=HVIS(EKSAKT(A2; "JA"); "Bekreftet"; "Ikke bekreftet")
HVIS på datoer
Datoer er tall i Excel, så vanlige operatorer virker – men datoen du sammenligner mot må også være en dato:
=HVIS(A2<IDAG(); "Forfalt"; "Ikke forfalt")
=HVIS(A2<DATO(2026;1;1); "Fjorårets"; "Årets")
Skriv aldri =HVIS(A2<"01.01.2026"; ...). Teksten i anførselstegn er ikke en
dato, og sammenligningen gir feil svar uten feilmelding. Får du rare resultater,
er sjansen stor for at datokolonnen din er tekst – se
#VERDI! i Excel.
Vanlige feil
Anførselstegn rundt tall. =HVIS(B2>"1000"; ...) sammenligner tall med
tekst, og gir feil svar uten feilmelding.
Mellomrom i tekst. =HVIS(C2="Fullført"; ...) treffer ikke hvis cellen
inneholder "Fullført " med et mellomrom på slutten. Pakk inn i TRIMME:
=HVIS(TRIMME(C2)="Fullført"; ...).
Tester på tom celle. =HVIS(B2=""; ...) er sant både for helt tomme celler
og for celler som inneholder en tom tekst fra en annen formel. Vil du skille
dem, bruker du =HVIS(ERTOM(B2); ...).
Overlappende intervaller. =HVIS(OG(B2>=50000; B2<=100000); ...) og en
annen regel som også dekker 100000 gir uforutsigbart resultat. Bruk < i den
ene enden av hvert intervall.
HVIS rundt en feilmelding. =HVIS(ERFEIL(A2/B2); ""; A2/B2) regner ut
divisjonen to ganger. =HVISFEIL(A2/B2; "") gjør det samme raskere og kortere.
Skal du bare fange #I/T fra et oppslag – og fortsatt se andre feil – bruker du
HVIS.IT.
Manglende siste argument. =HVIS(B2>100; "Ja") returnerer USANN når
betingelsen ikke stemmer, ikke en tom celle. Skriv alltid ut tredje argument.
Slik feilsøker du en lang HVIS-formel
- Marker betingelsen i formellinjen og trykk F9. Excel viser om den gir SANN eller USANN akkurat nå. Esc for å avslutte uten å endre.
- Bruk Formler → Beregn formel for å gå gjennom hele formelen steg for steg.
- Del formelen midlertidig i to hjelpekolonner – én for betingelsen, én for resultatet. Når det virker, setter du dem sammen igjen.
- Sjekk rekkefølgen på betingelsene hvis noen rader havner i feil kategori.
Når HVIS ikke er riktig verktøy
- Skal du summere eller telle på betingelse, bruk SUMMER.HVIS.SETT eller ANTALL.HVIS.SETT i stedet for å bygge en hjelpekolonne med HVIS.
- Skal du hente en verdi fra en annen tabell, er det et oppslag du trenger, ikke en HVIS-formel med mange nivåer.
- Skal du fargelegge celler, gjør du det med betinget formatering. HVIS kan ikke endre formatering, bare innhold.
- Skal du begrense hva noen kan skrive, er datavalidering riktig verktøy – ikke en formel som varsler etterpå.
- Har formelen vokst til flere linjer, er det som regel et tegn på at logikken hører hjemme i en tabell eller i Power Query – ikke i én celle.
Norske og engelske navn
| Norsk | Engelsk |
|---|---|
| HVIS | IF |
| HVIS.SETT | IFS |
| OG | AND |
| ELLER | OR |
| IKKE | NOT |
| HVISFEIL | IFERROR |
| HVIS.IT | IFNA |
| ERTOM | ISBLANK |
| ERTALL | ISNUMBER |
| EKSAKT | EXACT |
Du trenger ikke oversette noe manuelt – Excel viser funksjonsnavnene i språket til den som åpner filen. Tabellen er der for at du skal kjenne igjen formler du finner på engelske nettsider.
Vanlige spørsmål
Hva heter HVIS på engelsk?
IF. OG heter AND, ELLER heter OR, IKKE heter NOT, HVIS.SETT heter IFS og HVISFEIL heter IFERROR. Excel oversetter navnene automatisk mellom språkversjoner.
Hvor mange HVIS kan jeg nøste inni hverandre?
Excel tillater 64 nivåer, men i praksis blir formelen uleselig lenge før det. Med mer enn tre eller fire nivåer bør du bruke HVIS.SETT eller en oppslagstabell med XOPPSLAG i stedet.
Hvorfor får jeg feil svar når jeg tester tekst?
HVIS skiller ikke mellom store og små bokstaver, men den er følsom for mellomrom. "Ja " med mellomrom på slutten er ikke lik "Ja". Bruk TRIMME rundt cellereferansen for å utelukke det.
Kan HVIS endre farge på cellen?
Nei. En formel kan bare bestemme hva som står i cellen, ikke hvordan den ser ut. Skal cellen fargelegges etter en regel, bruker du betinget formatering – som gjerne kan bruke akkurat den samme betingelsen.
Hvordan tester jeg om en celle inneholder en bestemt tekst?
Bruk SØK sammen med ERTALL: =HVIS(ERTALL(SØK("faktura"; A2)); "Ja"; "Nei"). SØK finner teksten hvor som helst i cellen og skiller ikke mellom store og små bokstaver.
Hva er forskjellen på HVIS.SETT og nøstede HVIS?
Ingen i resultatet – begge stopper ved første betingelse som er sann. Forskjellen er lesbarheten. HVIS.SETT skrives som en flat liste med par av betingelse og resultat, mens nøstede HVIS gir en formel med mange parenteser på slutten.
Hvorfor teller ANTALLA cellene mine selv om de ser tomme ut?
Fordi en HVIS-formel som returnerer "" gir en tom tekst, ikke en tom celle. Vil du at cellen skal være helt tom, må formelen fjernes – eller du må bruke ERTOM i stedet for = "" når du tester videre.