Erreur #CALC! / #SPILL!
L'erreur #SPILL! indique qu'une formule matricielle dynamique ne peut pas déborder dans les cellules cibles car elles sont occupées. L'erreur #CALC! signale un problème de calcul interne, souvent avec des fonctions de tableau dynamique comme FILTRE ou UNIQUE quand le résultat est vide.
À quoi sert un erreur #calc! / #spill! dans Excel ?
Les erreurs #SPILL! et #CALC! sont liées aux tableaux dynamiques, une fonctionnalité d'Excel 365 qui permet à une seule formule de renvoyer plusieurs résultats qui "débordent" automatiquement dans les cellules adjacentes. L'erreur #SPILL! apparaît quand la zone de débordement est bloquée par du contenu existant. L'erreur #CALC! apparaît quand la formule ne peut pas produire de résultat valide.
Tu vas rencontrer ces erreurs dès que tu utilises des fonctions comme FILTRE, TRIER, UNIQUE, SEQUENCE ou TRANSPOSE en tant que formules dynamiques. Elles sont spécifiques à Excel 365 et aux versions récentes. Si tu ne les as jamais vues, c'est probablement que tu utilises une version plus ancienne d'Excel qui ne supporte pas les tableaux dynamiques.
Erreur #CALC! / #SPILL! : exemples concrets
Exemple 1 : Gestionnaire de stock : résoudre une erreur #SPILL! sur un filtre dynamique
Tu es gestionnaire de stock dans une entreprise de distribution. Tu utilises la fonction FILTRE() pour extraire les produits dont le stock est inférieur au seuil de réapprovisionnement : =FILTRE(A2:D100;D2:D100<E1). La formule renvoie #SPILL! au lieu de la liste filtrée.
Le problème : la formule FILTRE doit déborder vers le bas pour afficher tous les résultats, mais certaines cellules en dessous contiennent déjà des données (un ancien tableau, du texte, ou même un espace invisible). Excel ne peut pas écraser ces cellules, donc il affiche #SPILL!.
Clique sur la cellule contenant l'erreur : Excel surligne en bleu la zone où la formule tente de déborder. Supprime ou déplace le contenu qui bloque cette zone. Une fois la zone libre, la formule fonctionne et affiche les résultats automatiquement.
Exemple 2 : Data analyst : comprendre pourquoi FILTRE renvoie #CALC!
Tu es data analyst dans une société de conseil. Tu utilises =FILTRE(A2:C50;B2:B50="Paris") pour extraire les clients parisiens. La formule fonctionnait hier, mais aujourd'hui elle renvoie #CALC!. Pourtant, la syntaxe n'a pas changé.
L'erreur #CALC! avec FILTRE signifie que le filtre ne trouve aucun résultat correspondant. Aucun client n'a "Paris" dans la colonne B (peut-être que les données ont changé, ou que la valeur cherchée contient une casse différente). Excel ne sait pas quoi afficher quand le résultat est un tableau vide, d'où l'erreur.
La solution : ajoute un troisième argument à FILTRE pour gérer le cas "aucun résultat" : =FILTRE(A2:C50;B2:B50="Paris";"Aucun résultat"). Ce troisième argument est le message affiché quand le filtre ne trouve rien. C'est une bonne pratique de toujours l'inclure.
- #1 Quand tu vois #SPILL!, clique sur la cellule de la formule : Excel surligne en bleu la zone de débordement et indique quelles cellules bloquent.
- #2 Pour FILTRE et UNIQUE, ajoute toujours un troisième argument pour le cas vide : =FILTRE(plage;critère;"Aucun résultat"). Cela évite l'erreur #CALC!.
- #3 Prévois toujours de l'espace libre sous et à droite de tes formules dynamiques. La zone de débordement peut varier selon les données.
Les formules à débordement (FILTRE, TRIER, UNIQUE, SEQUENCE) ne fonctionnent que dans Excel 365 et Excel 2021+. Si tu partages ton fichier avec quelqu'un qui utilise Excel 2019 ou antérieur, ces formules afficheront des erreurs.
Les erreurs courantes avec le erreur #calc! / #spill!
✕ Mettre du contenu dans la zone de débordement d'une formule dynamique
Tu places une formule FILTRE ou TRIER dans une cellule, et elle fonctionne. Plus tard, tu ajoutes du contenu dans une cellule qui se trouve dans la zone de débordement. La formule bascule en erreur #SPILL!.
C'est frustrant parce que l'erreur peut apparaître quand tu modifies une cellule qui semble éloignée de la formule. La zone de débordement dépend du nombre de résultats, qui peut varier selon les données.
Solution : Isole tes formules dynamiques dans une zone dédiée, avec suffisamment d'espace libre autour. Clique sur la cellule en erreur pour voir la zone surlignée en bleu, puis supprime le contenu qui bloque.
✕ Ne pas gérer le cas "aucun résultat" avec FILTRE ou UNIQUE
Tu utilises FILTRE() sans troisième argument. Quand le filtre ne trouve aucune correspondance, la formule renvoie #CALC! au lieu d'un message explicatif. L'utilisateur ne comprend pas la différence entre une erreur de formule et un résultat vide.
C'est un piège classique dans les tableaux de bord dynamiques : tout fonctionne quand il y a des données, mais l'erreur apparaît dès qu'un filtre ne retourne rien.
Solution : Ajoute toujours un troisième argument à FILTRE pour le cas vide : =FILTRE(plage;critère;"Aucune donnée"). Pour UNIQUE, enveloppe dans un SIERREUR : =SIERREUR(UNIQUE(plage);"Aucune valeur unique").
Questions fréquentes sur le erreur #calc! / #spill!
L'erreur #SPILL! signifie qu'une formule matricielle dynamique ne peut pas déborder dans les cellules adjacentes parce qu'elles contiennent déjà des données. Clique sur la cellule de la formule pour voir la zone de débordement surlignée en bleu. Supprime ou déplace le contenu qui bloque, et la formule fonctionnera automatiquement.
#SPILL! indique que la zone de débordement est bloquée par du contenu existant. La solution est de libérer l'espace. #CALC! indique un problème avec le calcul lui-même, souvent parce que la formule ne produit aucun résultat (par exemple FILTRE ne trouve aucune correspondance). Pour #CALC! avec FILTRE, ajoute un troisième argument pour le cas vide.
Prévois de l'espace libre sous et à droite de tes formules dynamiques. Ne place jamais de contenu fixe dans une zone susceptible de recevoir des résultats de débordement. Pour FILTRE et UNIQUE, utilise le troisième argument pour gérer le cas "aucun résultat". Vérifie aussi que les destinataires de ton fichier utilisent Excel 365 ou 2021+, car les versions antérieures ne supportent pas les tableaux dynamiques.
Termes liés
Envie d'aller plus loin ?
Explore les 293 termes de notre lexique ou découvre nos formules Excel.