#OVERLØB! (engelsk: #SPILL!) betyder, at formlen giver flere værdier, men at Excel ikke må skrive dem i cellerne nedenunder eller ved siden af. Oftest står der noget i vejen. Ryd de celler, resultatet skal bruge, så forsvinder fejlen af sig selv.

Er cellerne tomme, er det en af de mindre oplagte årsager herunder. Vi har genskabt dem alle i Microsoft 365 Excel på dansk.

Hvad “løbe over” betyder

Funktioner som SEKVENS, FILTRER, SORTER og ENTYDIGE giver et helt område som resultat. Du skriver formlen i én celle, og Excel fylder resten ud:

=SEKVENS(4) skrevet i A2. Kun A2 indeholder en formel; A3:A5 er resultatets overløb.
Række A
1 Frit
2 1
3 2
4 3
5 4
=SEKVENS(4) skrevet i A2. Kun A2 indeholder en formel; A3:A5 er resultatets overløb.

Kun A2 har en formel. A5 viser 4, men er ikke en formelcelle. Det område, resultatet fylder (her A2:A5), kalder Microsoft overløbsområdet. Hvis bare én celle i det område er optaget, kan Excel ikke skrive noget, og så viser A2 #OVERLØB!.

Syv årsager, afprøvet

Årsag Eksempel Resultat
En værdi i overløbsområdet x i D4, =SEKVENS(4) i D2 #OVERLØB!
En celle, der ser tom ud ét mellemrum eller formlen ="" i D4 #OVERLØB!
Flettede celler G4:H4 flettet (tom), =SEKVENS(4) i G2 #OVERLØB!
Formlen står i en Excel-tabel =SEKVENS(3) i en tabelkolonne #OVERLØB! i alle rækker
Opslag på en hel kolonne =LOPSLAG(A:A;$E$2:$F$4;2;FALSK) i B2 #OVERLØB!
Resultatet når ud over arket =SEKVENS(5) i række 1048574 #OVERLØB!
Størrelsen ændrer sig ved hver beregning =SEKVENS(SLUMPMELLEM(1;1000)) #OVERLØB!

Den sidste er sjælden. Den opstår, fordi SLUMPMELLEM (engelsk: RANDBETWEEN) giver et nyt tal hver gang, så Excel ikke kan vide, hvor stort resultatet bliver.

Noget står i vejen, også når du ikke kan se det

Den oplagte årsag er en værdi i området. Men et mellemrum eller en formel, der returnerer tom tekst (=""), blokerer også, selvom cellen ser tom ud. Da vi ryddede D4 helt, viste D2 igen 1, og overløbet fyldte D2:D5.

Ifølge Microsoft viser Excel en stiplet kant om overløbsområdet, når du markerer cellen med fejlen, og fejlmenuen ved cellen kan markere de celler, der er i vejen.

Flettede celler

Excel kan ikke løbe over i flettede celler, heller ikke når de er tomme. Med G4:H4 flettet gav =SEKVENS(4) i G2 #OVERLØB!. Efter vi ophævede fletningen, virkede formlen.

Formler i en Excel-tabel

Formler, der løber over, virker ikke inde i en Excel-tabel. Vi skrev =SEKVENS(3) i en tabelkolonne. Excel gjorde den til en beregnet kolonne og kopierede formlen til alle rækker, og alle rækker viste #OVERLØB!.

Du har to muligheder:

  • Flyt formlen ud af tabellen. Placeret uden for tabellen (med mindst én tom kolonne imellem) gav =SORTER(Varer[Varenr];;-1) de tre varenumre fra tabellen, sorteret faldende, med 1003 øverst.
  • Lad formlen give én værdi pr. række. =SUM(SEKVENS(3)) gav 6 i hver række i tabellen, fordi SUM samler resultatet til ét tal.

Ifølge Microsoft kan du også konvertere tabellen til et almindeligt område, men så mister du tabellens fordele. Se Excel-tabeller og strukturerede referencer.

LOPSLAG på en hel kolonne

Denne årsag rammer mange, der bruger formler fra ældre guides eller regneark. I ældre Excel kunne du skrive A:A som opslagsværdi, og Excel brugte bare cellen i samme række (det, Microsoft kalder implicit skæring, se afsnittet om @ nedenfor). I Microsoft 365 betyder A:A hele kolonnen, så LOPSLAG forsøger at returnere et resultat for hver eneste af kolonnens 1.048.576 rækker. Står formlen i række 2, er der ikke plads til dem.

Varenumre i A2:A4 og en prisliste i E1:F4. B2 slår op med hele kolonne A.
Række ABCDEF
1 Varenr Pris Varenr Pris
2 1002#OVERLØB!100149,95
3 10011002120
4 1003100315,5
Varenumre i A2:A4 og en prisliste i E1:F4. B2 slår op med hele kolonne A.
B2 =LOPSLAG(A:A;$E$2:$F$4;2;FALSK)
Resultat: #OVERLØB!

Tre rettelser, der alle virkede:

B2 =LOPSLAG(A2;$E$2:$F$4;2;FALSK)
Brug cellen i samme række og kopiér formlen ned. Resultat: 120
B3 =LOPSLAG(@A:A;$E$2:$F$4;2;FALSK)
@ tager værdien fra samme række, som ældre Excel gjorde. Resultat i række 3: 49,95
C2 =LOPSLAG(A2:A4;$E$2:$F$4;2;FALSK)
Ét område i stedet for hele kolonnen. Resultatet løber over i C2:C4: 120, 49,95 og 15,5.

Den første er den mest læsbare, hvis du alligevel kopierer formlen ned. Den sidste er smart, når listen ikke ændrer længde, men den skal have fri plads under sig.

Ud over arkets kant

=SEKVENS(5) i række 1048574 gav #OVERLØB!, fordi der kun er tre rækker tilbage. Det samme skete med =SEKVENS(1;10) i kolonne XFB, som kun har to kolonner til højre. =SEKVENS(3) i række 1048570 havde plads og virkede. I praksis ser du kun denne årsag med formler, der refererer til hele kolonner eller rækker, som i afsnittet ovenfor.

Henvis til hele resultatet med #-operatoren

Skriver du # efter cellen med formlen, henviser du til hele overløbsområdet, uanset hvor stort det bliver. Med =SEKVENS(4) i A2:

Formel Resultat
=SUM(A2#) 10
=TÆL(A2#) 4
=SORTER(A2#;;-1) 4, 3, 2, 1 (løber over i fire celler)

Det er nyttigt, når resultatet af fx FILTRER skifter størrelse, fordi A2# ifølge Microsoft altid dækker hele det aktuelle overløbsområde.

To ting at vide:

  • Er overløbet blokeret, er #-referencen det også. Da D2 viste #OVERLØB!, gav =SUM(D2#) også #OVERLØB!.
  • # virker kun på en celle, der løber over. =SUM(J1#), hvor J1 bare indeholder tallet 5, gav #REFERENCE!.

@: når formlen kun skal give én værdi

@ hedder implicit skæring. Den tvinger formlen til at give én værdi: fra et område tager den cellen i samme række (eller kolonne), og fra en matrix tager den den første værdi.

Vi skrev de samme tal 10, 20 og 30 i A1:A3 og prøvede fire formler:

Formel Står i Resultat
=A1:A3*2 C2 løber over: 20, 40, 60 i C2:C4
=@A1:A3*2 D2 40 (A2 er i samme række)
=@SEKVENS(3) E1 1 (første værdi)
=@A1:A3 F5 #VÆRDI! (række 5 er ikke en del af A1:A3)

Hvorfor der pludselig står @ i gamle formler

Vi skrev også =A1:A3*2 i B2 på den “gamle” måde, som en formel fra en version uden dynamiske matrixer. Microsoft 365 viste den som =@A1:A3*2 og beregnede 40, præcis som den gamle Excel ville. En almindelig =SUM(A1:A3) skrevet på samme gamle måde fik ikke noget @, fordi den kun kan give én værdi.

Det svarer til Microsofts forklaring: @ bliver sat ind i ældre formler, der kunne give flere værdier, så de beregner som før. Fjerner du @, kan formlen begynde at løbe over. Og ifølge Microsoft forstår versioner uden dynamiske matrixer ikke en formel med @, som du har skrevet i Microsoft 365.

Ifølge Microsoft har @ samme betydning i tabeller: [@Pris] betyder “Pris i samme række”.

Skjul ikke fejlen

=HVIS.FEJL(D2;"fejl") gav “fejl”, mens D2 var blokeret. Det skjuler et problem, der næsten altid bare kræver, at du rydder nogle celler. =FEJLTYPE(D2) gav 9 for #OVERLØB!, hvis du vil teste for netop den fejl. Oversigten over alle fejlværdier og deres numre står i Excel-fejl på dansk.

Hvis du vil bruge overløb til at vise alle rækker, der matcher et kriterie, så se FILTRER med flere resultater.