La propagation Excel désigne le mécanisme par lequel une formule de tableau dynamique déverse automatiquement ses résultats dans les cellules adjacentes, à partir d’une seule cellule d’entrée. Ce comportement, introduit avec les formules de tableau dynamique, change profondément la façon dont on construit et référence les plages de données dans une feuille de calcul.
L’opérateur # : référencer une plage propagée de taille variable
Le point technique que la plupart des tutoriels négligent concerne l’opérateur de plage propagée, noté # après la cellule d’ancrage. Si une formule =FILTRE(A2:A100;B2:B100="Paris") est saisie en D2, la notation D2# désigne l’intégralité de la zone déversée, quelle que soit sa taille à un instant donné.
Ce mécanisme permet de chaîner les formules dynamiques sans figer la plage de sortie. Une formule =UNIQUE(D2#) placée en F2 suivra automatiquement les variations de la plage source, sans aucune intervention manuelle. C’est une différence fondamentale avec les plages nommées ou les références fixes du style D2:D50.
La conséquence pratique : toute formule en aval qui consomme une plage propagée doit utiliser la notation #, pas une référence figée. Sinon, le modèle casse silencieusement dès que le nombre de lignes change.
Tableaux structurés et formules dynamiques : une incompatibilité à anticiper
Les formules de tableau dynamique ne se propagent pas à l’intérieur d’un tableau structuré (créé via Insertion > Tableau). Excel renvoie alors #PROPAGATION! sans autre indication sur la cause.
Ce comportement n’est pas un bug : les tableaux structurés gèrent leur propre redimensionnement via les colonnes calculées, ce qui entre en conflit avec le déversement libre des formules dynamiques. La zone de propagation doit être une plage ordinaire, hors tableau.
Dans la pratique, deux configurations sont viables :
- Placer la formule dynamique à l’extérieur du tableau structuré et référencer les colonnes du tableau comme source d’entrée. La plage propagée reste libre de s’étendre.
- Convertir le tableau structuré en plage ordinaire (clic droit > Convertir en plage) si le tableau structuré n’apporte pas de valeur ajoutée dans le contexte précis du fichier.
- Pour les cas où l’on a besoin des deux fonctionnalités, structurer les données en tableau et exporter les résultats calculés via formules dynamiques dans une zone séparée de la feuille.

Diagnostiquer et corriger l’erreur #PROPAGATION dans Excel
L’erreur #PROPAGATION! apparaît quand la zone de déversement est partiellement ou totalement occupée. Excel matérialise la zone requise par un encadré en pointillés dès que la cellule en erreur est sélectionnée : c’est la première étape du diagnostic.
Les causes sont plus variées qu’il n’y paraît. Une cellule contenant uniquement une espace insécable, une mise en forme conditionnelle avec une règle de validation, ou une formule qui renvoie une chaîne vide peuvent suffire à bloquer la propagation, même si la cellule semble vide visuellement.
Procédure de déblocage fiable :
- Sélectionner la cellule en erreur et repérer la zone en pointillés.
- Sélectionner toutes les cellules de cette zone, puis utiliser Édition > Effacer > Tout effacer (et non seulement Supprimer le contenu) pour supprimer également les formats résiduels.
- Si l’erreur persiste, vérifier chaque cellule de la zone avec la barre de formule : une espace ou un caractère invisible suffit à bloquer.
- Confirmer que la zone de déversement ne dépasse pas les limites de la feuille (ligne 1 048 576 ou colonne XFD).
Formules CSE héritées vs formules dynamiques modernes
Les anciens fichiers contiennent parfois des formules matricielles CSE, saisies avec Ctrl+Maj+Entrée et reconnaissables aux accolades { } qui encadrent la formule dans la barre de formule. Ces formules retournent toujours un résultat de taille fixe et ne se propagent pas : elles occupent un nombre prédéfini de cellules, ni plus ni moins.
Lors de la maintenance d’un fichier ancien, confondre les deux types génère des erreurs difficiles à interpréter. Une formule CSE ne déclenchera jamais #PROPAGATION!, mais elle ne suivra pas non plus les variations de la source. La migration vers les formules dynamiques implique de supprimer les accolades et de re-saisir la formule normalement, avec validation par Entrée.
Liens entre classeurs et formules dynamiques : le risque #REF!
Une formule de tableau dynamique qui dépend d’un classeur externe peut renvoyer #REF! dès que ce classeur est fermé. Ce comportement diffère des formules scalaires classiques, qui conservent la dernière valeur calculée même en l’absence du fichier source.
Tester le comportement avec le classeur source fermé doit faire partie de la validation de tout modèle qui s’appuie sur des liens inter-classeurs. Un fichier qui fonctionne en développement et échoue en production parce qu’un classeur lié n’est pas ouvert est un problème récurrent.
Pour les architectures de ce type, Power Query constitue une alternative plus robuste : il matérialise les données dans la feuille de calcul et ne dépend pas de l’état d’ouverture des fichiers sources. Le choix entre formules dynamiques et Power Query dépend des contraintes de mise à jour, de la fréquence de rafraîchissement et du niveau de maintenance acceptable pour le fichier.
Paramétrage avancé : contrôler la taille de propagation avec IFERROR et PRENDRE
Limiter la plage de déversement
Certaines formules comme =SEQUENCE(n) ou =FILTRE(...) peuvent renvoyer un nombre de lignes imprévisible selon les données. Pour borner la plage de déversement, il est possible d’envelopper la formule dans une fonction qui tronque le résultat à un nombre de lignes défini, ou d’utiliser INDEX pour extraire une portion fixe du tableau propagé.
La fonction IFERROR permet quant à elle d’absorber les erreurs de propagation dans les formules chaînées : =IFERROR(FILTRE(...);"Aucun résultat") renvoie un texte fixe plutôt que de propager l’erreur #CALC! ou #PROPAGATION! aux cellules en aval.
Référencer une seule valeur dans une plage propagée
Pour extraire une valeur précise d’une plage propagée sans dépendre de sa position absolue, la syntaxe D2# peut être combinée avec INDEX : =INDEX(D2#;3;1) retourne la troisième ligne de la plage déversée, quel que soit l’emplacement physique des cellules. Cette approche découple la logique de calcul de la disposition physique des données dans la feuille.
La propagation Excel n’est pas un comportement à subir mais un levier de structuration : bien utilisée, elle rend les modèles dynamiques lisibles et maintenables. Mal anticipée, notamment dans les fichiers multi-utilisateurs ou inter-classeurs, elle produit des erreurs difficiles à tracer. La connaissance des contraintes techniques – incompatibilité avec les tableaux structurés, comportement avec les classeurs fermés, distinction CSE vs dynamique – est ce qui sépare un fichier fragile d’un modèle robuste.

