Vai al contenuto principale

Errore #SPILL! in Excel: cosa significa e come risolverlo

Scopri perché compare l’errore #SPILL! quando usi gli array dinamici in Excel. Impara a correggerlo, prevenirlo e sfruttare al meglio le formule con array di Excel.
· 8 min leggi

Scopri con l'IA

L’errore #SPILL! in Excel è una conseguenza diretta della potente funzionalità degli array dinamici introdotta in Excel 365. Anche se a prima vista può sembrare frustrante, in realtà è un segnale utile che qualcosa, spesso un blocco in una cella, sta impedendo alla tua formula di visualizzare tutti i risultati previsti.

Gli array dinamici permettono alle formule di restituire automaticamente più valori nelle celle adiacenti, ma introducono anche nuovi comportamenti e, con essi, nuove tipologie di errori. Piuttosto che vedere #SPILL! come un ostacolo, consideralo un’opportunità per perfezionare la logica, il layout e l’efficienza del tuo foglio di calcolo.

In questa guida spiegherò le diverse cause dell’errore #SPILL! e come eseguire la diagnosi con esempi pratici. Se stai muovendo i primi passi in Excel, il nostro corso Introduction to Excel copre competenze essenziali come muoversi nell’interfaccia, comprendere i formati dei dati e lavorare con funzioni di base.

Cos’è l’errore Spill in Excel?

L’errore #SPILL! in Excel indica che una formula sta cercando di restituire più valori, ma qualcosa sta impedendo ai risultati di “spandersi” nell’intervallo di celle necessario. Questo concetto deriva dalla funzionalità degli array dinamici di Excel 365, in cui una singola formula può popolare automaticamente i risultati in più celle adiacenti, note come intervallo di spill.

Immaginalo come versare acqua in una fila di bicchieri vuoti: se alcuni bicchieri sono già pieni (le celle contengono già dati o sono bloccate), l’acqua non può scorrere correttamente ed Excel mostra un errore #SPILL! per avvisarti. È un grande cambiamento rispetto alle versioni precedenti di Excel, che usavano la cosiddetta intersezione implicita, restituendo un solo valore da una formula anche se faceva riferimento a un intervallo. Con gli array dinamici, Excel è più intelligente e potente, ma richiede anche maggiore attenzione a ciò che accade nelle celle circostanti.

Cause comuni dell’errore #SPILL!

L’errore #SPILL! può comparire per vari motivi, e comprenderne la causa alla radice aiuta a risolverlo rapidamente. Di seguito trovi le cause più comuni, con esempi pratici e come riconoscerle o risolverle.

Celle unite

Se una qualsiasi cella nell’intervallo di spill è unita, la formula non può espandersi. Nell’esempio seguente compare l’errore #SPILL! perché le celle “B3” e “C3” sono unite e la formula non può espandersi in “B3”.

Errore #SPILL! in Excel causato da celle unite

Array dinamici all’interno di tabelle

Le formule con array dinamici non funzionano all’interno delle Tabelle di Excel create con Ctrl + T. Il loro formato di riferimenti strutturati è in conflitto con il comportamento di spill. Nell’esempio seguente, Excel restituirà un errore #SPILL! perché gli array dinamici non possono espandersi all’interno di una tabella.

Errore #SPILL! in Excel causato da array dinamici all’interno di tabelle

Intervallo di spill ostruito

Le cause più comuni dell’errore #SPILL! sono elementi che bloccano, visibilmente o meno, le celle in cui la formula vuole espandersi. Le ostruzioni visibili includono dati, formule o testo già presenti nelle celle di destinazione. Nell’esempio seguente, l’errore #SPILL! si verifica perché la cella “B4” contiene già dei dati.

Intervallo di spill ostruito in Excel

Le ostruzioni invisibili possono essere stringhe vuote (""), spazi o formattazioni nascoste. In questi casi, Excel delinea l’area di spill prevista con un bordo tratteggiato e mostra un’icona di errore su cui puoi fare clic per i dettagli. 

Ostruzione invisibile dell’intervallo di spill in Excel

Errori di sintassi o problemi di collegamento cartella di lavoro

Sintassi di formula non corretta o collegamenti interrotti a cartelle di lavoro esterne possono anch’essi generare l’errore #SPILL!.

Dimensione della formula sconosciuta o troppo grande

Otterrai un errore #SPILL! se usi formule che generano array molto grandi, come =RANDARRAY(1000000,1) o formule che fanno riferimento a intere colonne come =A:A. Queste formule possono superare i limiti di righe o colonne di Excel, oppure Excel può esaurire la memoria durante l’elaborazione dell’array.

Come risolvere un errore #SPILL! passo dopo passo

Risolvere un errore #SPILL! in Excel può essere rapido se segui un approccio strutturato. Ecco una guida passo passo per identificare e correggere il problema.

Passo 1: individua la causa

Inizia facendo clic sull’icona di avviso accanto alla cella con #SPILL!. Se compare l’opzione Seleziona Celle ostruenti, usala per evidenziare esattamente le celle che bloccano lo spill.

Verifica dell’avviso di errore #SPILL! in Excel

Passo 2: libera l’intervallo di spill

Se la formula è bloccata da altro contenuto:

  • Seleziona le celle delineate dal bordo tratteggiato dello spill.
  • Vai alla scheda Home > Cancella > Cancella contenuto o Cancella tutto.

Libera l’intervallo di spill in Excel

Passo 3: separa le celle unite o sposta la formula

Se le celle unite bloccano lo spill:

  • Seleziona le celle unite e vai su Home > Unisci e centra > Separa celle.

Libera l’intervallo di spill in Excel

Per centrare visivamente il testo senza unire le celle, usa Centra tra selezione in Formato celle > Allineamento.

Usare Centra tra selezione per centrare il testo senza unire celle

In alternativa, sposta la formula in un’area senza celle unite per evitare l’errore #SPILL!.

Passo 4: adatta i layout delle tabelle

Dato che gli array dinamici non funzionano all’interno delle Tabelle di Excel:

  • Fai clic con il tasto destro all’interno della tabella > Tabella > Converti in intervallo.
  • Poi reinserisci la formula fuori dall’area della tabella.

Converti Tabella in intervallo in Excel

Ti consiglio di pianificare le formule con array dinamici in aree lontane dalle Tabelle di Excel quando possibile.

Passo 5: usa l’operatore @ per un singolo valore

Puoi usare l’operatore @ per ottenere un solo valore da una formula dinamica (non un intervallo di spill). Ad esempio, la formula =@A2:A10 restituisce solo il primo elemento (A1).

Uso dell’operatore @ per ottenere un singolo valore da una formula dinamica

Invece, =A2:A10 espande i risultati in altre celle per restituire l’intero intervallo.

Formula con intervallo di spill in Excel

Passo 6: prova le formule in aree vuote

Se non ti è ancora chiaro cosa stia causando il problema, copia la formula in una parte completamente vuota del foglio. Questo approccio aiuta a capire se l’errore dipende dalla formula stessa o da ostruzioni nelle celle circostanti.

Esempi di troubleshooting

Ora che abbiamo visto come risolvere l’errore #SPILL! in Excel, di seguito trovi esempi pratici di diagnosi usando funzioni comuni di Excel e array dinamici.

VLOOKUP() restituisce un errore #SPILL!

Potresti pensare che VLOOKUP() restituisca sempre un singolo valore, ma se abbinata a un intervallo di valori di ricerca come A2:A10, prova a produrre più risultati su molte righe.

Nell’esempio seguente, Excel prova a restituire 10 valori (uno per ogni ricerca), ma compare un errore #SPILL! perché le celle sotto la formula non sono vuote.

Errore #SPILL! in Excel dalla funzione VLOOKUP()

Per risolvere, assicurati che l’intervallo di destinazione (in questo caso, le 10 righe successive) sia vuoto, poi riapplica la formula.

Intervallo di spill della funzione VLOOKUP() in Excel

Esempi con FILTER(), INDEX()-MATCH() e IF()

Formule abilitate agli array dinamici come FILTER(), INDEX MATCH, e IF() possono generare più risultati a seconda della logica e dei riferimenti. Una pianificazione carente del layout porta spesso a #SPILL!.

Considera l’esempio seguente “Corrispondenza di attributi tra colonne”. La formula seguente restituisce tutte le righe della colonna A in cui coincidono "Red" e "Large". Se l’intervallo di spill è bloccato, otterrai un errore #SPILL!.

=FILTER(A2:A100, (B2:B100="Red")*(C2:C100="Large"))

Uso della funzione FILTER() di Excel per l’intervallo di spill

Allo stesso modo, puoi usare il set di funzioni INDEX()-MATCH() per restituire più risultati di ricerca per un intervallo di input. Ma se l’intervallo di spill sotto la formula è bloccato o disallineato, non potrà espandersi.

=INDEX(A2:A100, MATCH(E3:E10, B2:B100, 0))

Uso di INDEX MATCH per l’intervallo di spill

Valuta l’uso di LET() e SEQUENCE() per chiarezza e controllo. Ad esempio, nella formula seguente, FILTER() produce un elenco in spill, ma TEXTJOIN() lo comprime in un’unica cella, quindi non serve lo spill. È un buon modello quando vuoi risultati dinamici ma evitare #SPILL!.

=LET(colors, FILTER(A2:A10, B2:B10="Blue"), TEXTJOIN(", ", TRUE, colors))

Uso di LET(), FILTER(), TEXTJOIN() per evitare l’errore #SPILL!

Buone pratiche per prevenire gli errori di spill

Per ridurre le probabilità di incontrare errori #SPILL!, è importante considerare le seguenti buone pratiche quando progetti e mantieni le tue cartelle di lavoro Excel:

  • Lascia spazio all’espansione degli array dinamici: Assicurati sempre che ci sia spazio vuoto sufficiente sotto e a destra del punto in cui una formula con array dinamico potrebbe espandersi man mano che i dati crescono.

  • Evita formule dinamiche dentro tabelle strutturate: poiché le tabelle di Excel non supportano lo spill, usa sempre le formule con array dinamici fuori dalle tabelle o converti la tabella in un intervallo normale se devi usare tali formule.

  • Usa @ quando ti serve un solo risultato: se ti serve un singolo valore da una formula che potrebbe espandersi, anteponi l’operatore @. 

  • Documenta la logica del layout con commenti o colori delle celle: usa note, commenti o colori di riempimento per indicare visivamente le aree riservate alle formule dinamiche. Questo aiuta gli altri a capire come dovrebbe funzionare il foglio quando condividi le tue cartelle di lavoro.

  • Pulisci regolarmente i fogli per evitare ostruzioni invisibili: rimuovi formattazioni inutilizzate, formule con stringhe vuote ("") e spazi fantasma. Usa “Cancella tutto” invece di “Elimina” per ripristinare davvero le celle nell’intervallo di spill.

Riepilogo: cosa ricordare

#SPILL! si verifica quando una formula prova a restituire più valori ma qualcosa blocca l’intervallo di output. Più che un fastidio, questo errore aiuta a evidenziare problemi di layout o della formula stessa. Gli strumenti integrati di Excel, come l’icona di errore e l’opzione Seleziona Celle ostruenti, semplificano l’identificazione e la correzione dei problemi. Pianificando il layout tenendo conto degli array dinamici, puoi evitare errori futuri e creare fogli di calcolo più puliti ed efficienti. In molti casi, l’errore #SPILL! è una funzione utile, perché rende visibili potenziali problemi e incoraggia una migliore progettazione dei fogli.

Ti consiglio di seguire il nostro corso Data Analysis in Excel per imparare a generare insight, e il nostro percorso di competenze Excel Fundamentals per conoscere meglio le funzioni disponibili nelle versioni più recenti di Excel. Il nostro corso Advanced Excel Functions è anche perfetto per approfondire riferimenti avanzati e ricerche, come ho iniziato a mostrare in questo articolo.

Allan Ouko

Autore

Allan Ouko

Technical writer di Data Science con esperienza pratica in data analytics, business intelligence e data science. Scrivo contenuti pratici e orientati al settore su SQL, Python, Power BI, Databricks e data engineering, basati su lavoro di analytics reale. La mia scrittura unisce profondità tecnica e impatto sul business, aiutando i professionisti a trasformare i dati in decisioni sicure.

Domande frequenti

Cosa significa l’errore #SPILL! in Excel?

L’errore #SPILL! significa che una formula sta cercando di restituire più valori, ma qualcosa ne blocca l’output.

Come trovo cosa sta bloccando lo spill?

Fai clic sull’icona di errore e scegli “Seleziona Celle ostruenti” per evidenziare il problema.

Come risolvo rapidamente un errore #SPILL!?

Pulisci le celle che ostruiscono o sposta la formula in un’area libera.

Come posso prevenire in futuro gli errori #SPILL!?

Lascia spazio sufficiente agli array dinamici, evita le tabelle e mantieni liberi gli intervalli di spill.

Perché l’errore #SPILL! è in realtà utile?

Evidenzia problemi di layout o di formula, facilitando l’individuazione e la correzione precoce dei problemi nel foglio.

Argomenti

Correlato