Felet #SPILL! fel – sträcker sig utanför kalkylbladets kant

Gäller för
Excel för Microsoft 365 Excel för Microsoft 365 för Mac Excel för iPad Excel Web App Excel för iPhone Excel för Android-surfplattor Excel för Android-telefoner

Den matrisformel som du försöker mata in kommer att sträcka sig utanför kalkylbladets område. Försök igen med ett mindre område eller en mindre matris.

I följande exempel löser du felet genom att flytta formeln till cell F1 och formeln kommer att spilla korrekt.

#SPILL! där =SORTERA(D:D) i cell F2 sträcker sig utanför arbetsbokens kanter. Flytta den till cell F1 så fungerar den korrekt.

Vanliga orsaker: fullständiga kolumnreferenser

Det finns en ofta missförstådd metod för att skapa LETARAD-formler genom att ange det lookup_value argumentet. Före dynamisk matris som stöder Excel skulle Excel bara överväga värdet på samma rad som formeln och ignorera alla andra, eftersom LETARAD bara förväntade sig ett enda värde. Med introduktionen av dynamiska matriser tar Excel hänsyn till alla värden som finns i lookup_value. Det innebär att om en hel kolumn anges som det lookup_value argumentet försöker Excel leta upp alla 1 048 576 värden i kolumnen. När det är klart kommer det att försöka spilla dem till rutnätet, och kommer med stor sannolikhet att träffa slutet av rutnätet vilket resulterar i en #SPILL! #REF!.  

Till exempel så letade formeln =LETARAD(A:A,A:C,2,FALSKT) tidigare bara upp ID:et i cell A2 om den placerades i cell E2 som i exemplet nedan. Men i dynamisk matris i Excel orsakar formeln ett #SPILL! fel eftersom Excel letar upp hela kolumnen, returnerar 1 048 576 resultat, och tar i kanten på rutnätet i Excel.

#SPILL! fel som orsakas av =LETARAD(A:A,A:D,2,FALSKT) i cell E2, eftersom resultatet skulle spilla utanför kalkylbladets kant. Flytta formeln till cell E1 så fungerar den korrekt.

Det finns tre enkla sätt att lösa det här problemet:

# Metod Formel
1 Referera endast till de letaupp-värden du är intresserad av. Det här formelformatet returnerar en dynamisk matris, men fungerar inte med Excel-tabeller.
Använd =LETARAD(A2:A7;A:C;2;FALSKT) för att returnera en dynamisk matris som inte resulterar i en #SPILL! Fel.
=LETARAD(A2:A7,A:C,2,FALSKT)
2 Referera endast till värdet på samma rad och kopiera sedan formeln nedåt. Det här traditionella formelformatet fungerar i tabeller men returnerar inte en dynamisk matris.
Använd den traditionella LETARAD-funktionen med en enda lookup_value referens: =LETARAD(A2;A:C;32;FALSKT). Den här formeln returnerar inte en dynamisk matris, men kan användas med Excel-tabeller.
=LETARAD(A2,A:C,2,FALSKT)
3 Begär att Excel utför implicit skärningspunkt med @-operatören och kopiera sedan formeln nedåt. Det här formelformatet fungerar i tabeller men returnerar inte en dynamisk matris.
Använd operatorn @ och kopiera ned: =LETARAD(@A:A,A:C,2,FALSKT). Det här referensformatet fungerar i tabeller, men returnerar inte en dynamisk matris.
=LETARAD(@A:A,A:C,2,FALSKT)

Behöver du mer hjälp?

Du kan alltid fråga en expert i Excel Tech Community eller få support i Communities.

Mer information finns i

Funktionen FILTER

Funktionen SLUMPMATRIS

Funktionen SEKVENS

Funktionen SORTERA

Funktionen SORTERAEFTER

Funktionen UNIK

Felet #SPILL! i Excel

Dynamiska matriser och beteenden för matriser och spill

Implicit skärningspunktsoperator: @