Excel-formel: Sådan løses #SPILL! fejl -

Indholdsfortegnelse

Resumé

En #SPILL-fejl opstår, når et spildområde blokeres af noget på regnearket. Løsningen er normalt at rydde spildområdet for eventuelle hindrende data. Se nedenfor for mere information og trin til løsning.

Forklaring

Om spild og # SPILL! fejl

Med introduktionen af ​​dynamiske arrays i Excel spilder formler, der returnerer flere værdier, disse værdier direkte på regnearket. Rektanglet, der omslutter værdierne, kaldes "spildområde". Når data ændres, udvides spildområdet eller trækkes ud efter behov. Du kan muligvis se nye værdier tilføjet, eller eksisterende værdier forsvinder.

Video: Spild og spildområdet

En #SPILL-fejl opstår, når et spildområde blokeres af noget på regnearket. Nogle gange forventes dette. For eksempel har du indtastet en formel og forventer, at den spildes, men eksisterende data i regnearket er i vejen. Løsningen er bare at rydde spildområdet for eventuelle hindrende data.

Nogle gange kan fejlen imidlertid være uventet og derfor forvirrende. Læs nedenfor for, hvordan denne fejl kan være forårsaget, og hvad du kan gøre for at løse.

Spildadfærd er indfødt

Det er vigtigt at forstå, at spildadfærd er automatisk og indfødt. I Dynamic Excel (i øjeblikket kun Office 365 Excel) kan enhver formel, selv en simpel formel uden funktioner, spilde resultater. Selv om der er måder at stoppe en formel i at returnere flere resultater, kan spild af sig selv ikke deaktiveres med en global indstilling.

Tilsvarende er der ingen mulighed i Excel for at "deaktivere #SPILL-fejl. For at rette en #SPILL-fejl skal du undersøge og løse årsagen til problemet.

Løs nr. 1 - ryd spildområdet

Dette er den enkleste sag at løse. Formlen skal spilde flere værdier, men i stedet returnerer den #SPILL! fordi noget er i vejen. For at løse fejlen skal du vælge en hvilken som helst celle i spildområdet, så du kan se dens grænser. Flyt derefter enten de blokerende data til en ny placering, eller slet dataene helt. Bemærk, at celler i spildområdet skal være tomme, så vær opmærksom på celler, der indeholder usynlige tegn, såsom mellemrum.

På nedenstående skærm blokerer "x" spildområdet:

Når "x" fjernes, spildes UNIQUE-funktionen normalt:

Fix nr. 2 - tilføj @ karakter

Før dynamiske arrays anvendte Excel lydløst en adfærd kaldet "implicit skæringspunkt" for at sikre, at visse formler med potentialet til at returnere flere resultater kun returnerede et enkelt resultat. I ikke-dynamisk array Excel returnerer disse formler et normalt udseende resultat uden fejl. I visse tilfælde kan den samme formel, der er angivet i Dynamic Excel, dog generere en #SPILL-fejl. For eksempel på skærmbilledet nedenfor indeholder celle D5 denne formel, kopieret ned:

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

Denne formel ville ikke kaste en fejl ind, siger Excel 2016, fordi implicit kryds ville forhindre formlen i at returnere flere resultater. Imidlertid returnerer formlen i Dynamic Excel automatisk spild af flere resultater til regnearket, og som kolliderer ind i hinanden, da formlen kopieres ned fra D5: D10.

En løsning er at bruge karakteren @ til at muliggøre implicit krydsning som denne:

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

Med denne ændring returnerer hver formel et enkelt resultat igen, og #SPILL-fejlen forsvinder.

Bemærk: dette forklarer delvist, hvorfor du pludselig kan se "@" -tegnet vises i formler oprettet i ældre versioner af Excel. Dette gøres for at opretholde kompatibilitet. Da formler i ældre versioner af Excel ikke kan spildes i flere celler, tilføjes @ for at sikre den samme adfærd, når formlen åbnes i Dynamic Excel.

Fix nr. 3 - native dynamisk matrixformel

En anden (bedre) måde at rette op på #SPILL-fejlen vist ovenfor er at bruge en naturlig dynamisk matrixformel i D5 som denne:

=B5:B10+3

I Dynamic Excel spilder denne enkelt formel resultater i området D5: D10, som det ses på skærmbilledet nedenfor:

Bemærk, at der ikke er behov for at bruge en absolut reference.

Interessante artikler...