Excel-formel: Så här fixar du #SPILL! fel -

Innehållsförteckning

Sammanfattning

Ett #SPILL-fel uppstår när ett spillområde blockeras av något i kalkylbladet. Lösningen är vanligtvis att rensa spillområdet för eventuella hinderande data. Se nedan för mer information och steg för att lösa.

Förklaring

Om spill och # SPILL! fel

Med introduktionen av dynamiska matriser i Excel, "spelar" formler som returnerar flera värden direkt till kalkylbladet. Rektangeln som omsluter värdena kallas "spillområde". När data ändras kommer utbredningsområdet att utvidgas eller minska efter behov. Du kan se att nya värden läggs till eller att befintliga värden försvinner.

Video: Spill och spillområdet

Ett #SPILL-fel uppstår när ett spillområde blockeras av något i kalkylbladet. Ibland förväntas detta. Till exempel har du angett en formel och förväntar dig att den ska spillas, men befintlig data i kalkylbladet är i vägen. Lösningen är bara att rensa spillområdet för eventuella hinder.

Ibland kan dock felet vara oväntat och därför förvirrande. Läs nedan för hur detta fel kan orsakas och vad du kan göra för att lösa.

Spillbeteende är naturligt

Det är viktigt att förstå att spillbeteendet är automatiskt och inbyggt. I Dynamic Excel (för närvarande endast Office 365 Excel) kan alla formler, även en enkel formel utan funktioner, spilla resultat. Även om det finns sätt att stoppa en formel från att returnera flera resultat, kan spill inte själv inaktiveras med en global inställning.

På samma sätt finns det inget alternativ i Excel att "inaktivera #SPILL-fel. För att åtgärda ett #SPILL-fel måste du undersöka och lösa orsaken till problemet.

Fix nr 1 - rensa spillområdet

Detta är det enklaste fallet att lösa. Formeln ska spilla flera värden, men i stället returnerar den #SPILL! för att något är i vägen. För att lösa felet, välj vilken cell som helst i spillområdet så att du kan se dess gränser. Flytta antingen blockeringsdata till en ny plats eller ta bort informationen helt. Observera att celler i spillområdet måste vara tomma, så var uppmärksam på celler som innehåller osynliga tecken, t.ex. mellanslag.

På skärmen nedan blockerar "x" spillområdet:

När "x" tas bort, spelar UNIQUE-funktionen normalt resultat:

Fix # 2 - lägg till @ karaktär

Innan Dynamic Arrays använde Excel tyst ett beteende som kallades "implicit korsning" för att säkerställa att vissa formler med potential att returnera flera resultat bara gav ett enda resultat. I icke-dynamisk array Excel returnerar dessa formler ett normalt resultat utan fel. I vissa fall kan dock samma formel som anges i Dynamic Excel generera ett #SPILL-fel. Till exempel, på skärmen nedan innehåller cell D5 den här formeln, kopierad:

=$B$5:$B$10+3

Denna formel skulle inte kasta ett fel, säger Excel 2016 eftersom implicit korsning skulle förhindra att formeln returnerar flera resultat. I Dynamic Excel returnerar formeln dock automatiskt flera resultat till kalkylbladet och som kraschar in i varandra eftersom formeln kopieras ner från D5: D10.

En lösning är att använda tecknet @ för att möjliggöra implicit skärningspunkt så här:

= @$B$5:$B$10+3

Med denna ändring returnerar varje formel ett enda resultat igen och #SPILL-felet försvinner.

Obs: detta förklarar delvis varför du plötsligt kan se "@" -tecknet visas i formler som skapats i äldre versioner av Excel. Detta görs för att upprätthålla kompatibilitet. Eftersom formler i äldre versioner av Excel inte kan spillas in i flera celler läggs @ till för att säkerställa samma beteende när formeln öppnas i Dynamic Excel.

Fix # 3 - naturlig dynamisk matrisformel

Ett annat (bättre) sätt att fixa #SPILL-felet som visas ovan är att använda en inbyggd dynamisk matrisformel i D5 så här:

=B5:B10+3

I Dynamic Excel kommer denna enskilda formel att sprida resultat i intervallet D5: D10, vilket framgår av skärmdumpen nedan:

Observera att det inte finns något behov av att använda en absolut referens.

Intressanta artiklar...