Cours
L’erreur #SPILL! dans Excel est directement liée à la puissante fonctionnalité de matrices dynamiques introduite dans Excel 365. Même si elle peut sembler frustrante au premier abord, cette erreur est en réalité un signal utile indiquant que quelque chose, souvent une cellule qui bloque, empêche votre formule d’afficher tous les résultats attendus.
Les matrices dynamiques permettent aux formules de renvoyer automatiquement plusieurs valeurs dans des cellules adjacentes, mais elles introduisent aussi de nouveaux comportements et, avec eux, de nouveaux types d’erreurs. Plutôt que de voir #SPILL! comme un obstacle, considérez-le comme une occasion d’affiner la logique, la mise en page et l’efficacité de votre feuille de calcul.
Dans ce guide, j’explique les différentes causes de l’erreur #SPILL! et comment la dépanner à l’aide d’exemples concrets. Si vous débutez sur Excel, notre cours Introduction to Excel couvre les compétences essentielles comme la navigation dans l’interface, la compréhension des formats de données et l’utilisation des fonctions de base.
Qu’est-ce que l’erreur SPILL dans Excel ?
L’erreur #SPILL! indique qu’une formule tente de renvoyer plusieurs valeurs, mais que quelque chose empêche la sortie de « se déverser » dans l’ensemble de cellules nécessaire. Ce concept vient des matrices dynamiques d’Excel 365, où une seule formule peut remplir automatiquement des résultats sur plusieurs cellules adjacentes, appelées zone de déversement (spill range).
Imaginez que vous versiez de l’eau dans une rangée de verres vides : si certains verres sont déjà pleins (des cellules contiennent déjà des données ou sont bloquées), l’eau ne peut pas s’écouler correctement et Excel affiche une erreur #SPILL! pour vous en avertir. C’est un changement majeur par rapport aux anciennes versions d’Excel, qui utilisaient l’intersection implicite et ne renvoyaient qu’une seule valeur, même si la formule faisait référence à une plage. Avec les matrices dynamiques, Excel est plus intelligent et plus puissant, mais il exige aussi une meilleure attention à ce qui se passe autour des cellules concernées.
Causes fréquentes de l’erreur #SPILL!
L’erreur #SPILL! peut apparaître pour plusieurs raisons. Comprendre la cause racine vous aide à la corriger rapidement. Voici les causes les plus courantes, avec des exemples pratiques et des conseils pour les reconnaître et les résoudre.
Cellules fusionnées
Si une cellule de la zone de déversement est fusionnée, la formule ne peut pas se déverser. Dans l’exemple ci-dessous, vous obtenez l’erreur #SPILL! car les cellules « B3 » et « C3 » sont fusionnées et la formule ne peut pas se déverser dans « B3 ».

Matrices dynamiques dans des tableaux
Les formules à matrice dynamique ne fonctionnent pas dans les tableaux Excel créés avec Ctrl + T. Leur mode de référencement structuré entre en conflit avec le déversement. Dans l’exemple ci-dessous, Excel renvoie une erreur #SPILL! car les matrices dynamiques ne peuvent pas s’étendre à l’intérieur d’un tableau.

Zone de déversement obstruée
Les causes les plus fréquentes de l’erreur #SPILL! sont des obstructions visibles ou invisibles dans les cellules où la formule veut se déverser. Les obstructions visibles incluent des données, des formules ou du texte déjà présents dans les cellules cibles. Dans l’exemple ci-dessous, l’erreur #SPILL! survient car la cellule « B4 » contient déjà des données.

Les obstructions invisibles peuvent être des chaînes vides (""), des espaces ou un format masqué. Dans ce cas, Excel entoure la zone de déversement prévue d’un liseré en pointillés et affiche une icône d’erreur sur laquelle vous pouvez cliquer pour obtenir des détails.

Erreurs de syntaxe ou liaisons de classeur défaillantes
Une syntaxe de formule incorrecte ou des liens rompus vers des classeurs externes peuvent également déclencher l’erreur #SPILL!.
Taille de la formule inconnue ou trop grande
Vous obtiendrez une erreur #SPILL! si vous utilisez des formules qui génèrent des matrices très volumineuses, telles que =RANDARRAY(1000000,1) ou celles qui référencent des colonnes entières comme =A:A. Ces formules peuvent dépasser les limites de lignes ou de colonnes d’Excel, ou Excel peut manquer de mémoire lors du calcul de la matrice.
Comment corriger une erreur #SPILL! pas à pas
Résoudre une erreur #SPILL! peut être rapide si vous suivez une démarche structurée. Voici un guide étape par étape pour identifier et corriger le problème.
Étape 1 : identifier la cause
Commencez par cliquer sur l’icône d’avertissement à côté de la cellule #SPILL!. Si l’option Sélectionner les cellules obstructrices apparaît, utilisez-la pour surligner les cellules qui bloquent le déversement.

Étape 2 : vider la zone de déversement
Si la formule est bloquée par d’autres contenus :
- Sélectionnez les cellules délimitées par le liseré en pointillés de déversement.
- Allez dans l’onglet Accueil > Effacer > Effacer le contenu ou Tout effacer.

Étape 3 : dissocier les cellules ou déplacer la formule
Si des cellules fusionnées bloquent le déversement :
- Sélectionnez les cellules fusionnées puis allez dans Accueil > Fusionner et centrer > Dissocier les cellules.

Pour centrer visuellement du texte sans fusionner les cellules, utilisez Centrer sur la sélection dans Format de cellule > Alignement.

Autre option : déplacez votre formule dans une zone sans cellules fusionnées pour éviter l’erreur #SPILL!.
Étape 4 : ajuster la disposition des tableaux
Comme les matrices dynamiques ne fonctionnent pas dans les tableaux Excel :
- Clic droit dans le tableau > Tableau > Convertir en plage.
- Réentrez ensuite votre formule en dehors de la zone du tableau.

Je vous recommande de positionner vos formules à matrice dynamique à l’écart des tableaux Excel autant que possible.
Étape 5 : utiliser l’opérateur @ pour un seul résultat
Vous pouvez utiliser l’opérateur @ pour ne récupérer qu’une seule valeur d’une formule dynamique (et non une zone déversée). Par exemple, la formule =@A2:A10 renvoie uniquement le premier élément (A1).

En revanche, =A2:A10 déverse les résultats dans les autres cellules pour renvoyer toute la plage.

Étape 6 : tester les formules dans des zones vierges
Si vous n’êtes toujours pas sûr de la cause, copiez la formule dans une partie totalement vide de la feuille. Cette approche permet d’isoler si l’erreur provient de la formule elle-même ou d’obstructions dans les cellules environnantes.
Exemples de dépannage
Maintenant que nous avons vu comment résoudre l’erreur #SPILL! dans Excel, voici des exemples pratiques de dépannage à l’aide de fonctions courantes et de matrices dynamiques.
VLOOKUP() renvoie une erreur #SPILL!
Vous pourriez penser que VLOOKUP() renvoie toujours une seule valeur, mais associé à une plage de valeurs de recherche comme A2:A10, il tente de produire plusieurs résultats sur plusieurs lignes.
Dans l’exemple ci-dessous, Excel essaie de renvoyer 10 valeurs (une pour chaque recherche), mais une erreur #SPILL! survient car les cellules situées sous la formule ne sont pas vides.

Pour corriger ce problème, assurez-vous que la plage de destination (ici, les 10 lignes suivantes) est vide, puis réappliquez la formule.

Exemples avec FILTER(), INDEX()-MATCH() et IF()
Des formules compatibles avec les matrices dynamiques comme FILTER(), INDEX MATCH, et IF() peuvent générer plusieurs sorties selon la logique et les références. Une disposition mal pensée conduit souvent à #SPILL!.
Considérez l’exemple ci-dessous « Correspondance de critères sur plusieurs colonnes ». La formule ci-dessous renvoie toutes les lignes de la colonne A où « Red » et « Large » correspondent. Si la zone de déversement est bloquée, vous obtiendrez une erreur #SPILL!.
=FILTER(A2:A100, (B2:B100="Red")*(C2:C100="Large"))

De même, vous pouvez utiliser l’ensemble INDEX()-MATCH() pour renvoyer plusieurs résultats de recherche pour une plage d’entrées. Mais si la zone située sous la formule est bloquée ou mal alignée, le déversement est impossible.
=INDEX(A2:A100, MATCH(E3:E10, B2:B100, 0))

Pensez à utiliser LET() et SEQUENCE() pour plus de clarté et de contrôle. Par exemple, dans la formule ci-dessous, FILTER() déverse une liste, mais TEXTJOIN() la compresse dans une seule cellule, évitant ainsi tout déversement. C’est un bon modèle de conception quand vous voulez un résultat dynamique tout en évitant #SPILL!.
=LET(colors, FILTER(A2:A10, B2:B10="Blue"), TEXTJOIN(", ", TRUE, colors))

Bonnes pratiques pour éviter les erreurs de déversement
Pour réduire le risque d’erreurs #SPILL!, tenez compte des bonnes pratiques suivantes lors de la conception et de la maintenance de vos classeurs Excel :
-
Laissez de la place pour l’extension des matrices dynamiques : assurez-vous qu’il y a suffisamment d’espace vide en dessous et à droite de l’endroit où une formule à matrice dynamique peut s’étendre à mesure que les données grandissent.
-
Évitez les formules dynamiques dans les tableaux structurés : puisque les tableaux Excel ne gèrent pas le déversement, utilisez ces formules en dehors des tableaux ou convertissez le tableau en plage standard si vous devez les utiliser.
-
Utilisez @ lorsqu’un seul résultat est attendu : si vous ne souhaitez qu’une valeur unique d’une formule susceptible de se déverser, préfixez-la avec l’opérateur
@. -
Documentez la logique de mise en page avec des commentaires ou des couleurs : utilisez des notes, des commentaires ou des couleurs de remplissage pour indiquer visuellement les zones réservées aux formules dynamiques. Cela aide vos collaborateurs à comprendre le fonctionnement de la feuille lors du partage.
-
Nettoyez régulièrement les feuilles pour éviter les obstructions invisibles : supprimez les formats inutilisés, les formules renvoyant une chaîne vide (
"") et les espaces fantômes. Utilisez « Tout effacer » plutôt que simplement « Supprimer » pour réinitialiser réellement les cellules de la zone de déversement.
En résumé : l’essentiel à retenir
#SPILL! survient lorsqu’une formule tente de renvoyer plusieurs valeurs mais que la zone de sortie est bloquée. Plutôt qu’un simple désagrément, cette erreur met en lumière des problèmes de mise en page ou de formule. Les outils intégrés d’Excel, comme l’icône d’erreur et l’option Sélectionner les cellules obstructrices, facilitent l’identification et la correction. En concevant votre feuille avec les matrices dynamiques à l’esprit, vous éviterez des erreurs futures et créerez des classeurs plus clairs et plus efficaces. À bien des égards, l’erreur #SPILL! est utile : elle rend visibles des problèmes potentiels et encourage une meilleure conception de feuilles de calcul.
Je vous recommande notre cours Data Analysis in Excel pour apprendre à générer des insights, ainsi que notre Excel Fundamentals skill track pour approfondir les fonctions disponibles dans les dernières versions d’Excel. Notre cours Advanced Excel Functions est également idéal pour explorer les références avancées et les recherches, que j’ai commencé à présenter tout au long de cet article.
Faites progresser votre carrière avec Excel
Acquérir les compétences nécessaires pour optimiser Excel - aucune expérience n'est requise.
FAQs
Que signifie l’erreur #SPILL! dans Excel ?
L’erreur #SPILL! signifie qu’une formule tente de renvoyer plusieurs valeurs, mais que la sortie est bloquée.
Comment trouver ce qui bloque le déversement ?
Cliquez sur l’icône d’erreur et choisissez « Sélectionner les cellules obstructrices » pour mettre en évidence le problème.
Comment corriger rapidement une erreur #SPILL! ?
Videz les cellules qui bloquent ou déplacez la formule vers une zone libre.
Comment prévenir les erreurs #SPILL! à l’avenir ?
Laissez suffisamment d’espace pour les matrices dynamiques, évitez les tableaux et gardez les zones de déversement dégagées.
Pourquoi l’erreur #SPILL! est-elle finalement utile ?
Elle met en évidence des problèmes de mise en page ou de formule, ce qui facilite leur détection et leur correction en amont.
