RechercheAvancé

Fonction DECALER ExcelRéférences Dynamiques et Plages Variables – Guide 2026

DECALER (OFFSET en anglais) est une fonction puissante qui te permet de créer des références dynamiques qui s'adaptent automatiquement à tes données. Que tu construises un tableau de bord interactif, un graphique qui se met à jour tout seul, ou une analyse de tendances, DECALER est ton meilleur allié pour automatiser tes rapports Excel.

Contrairement aux références statiques comme A1:A10 qui pointent toujours vers les mêmes cellules, DECALER calcule la position et la taille de la référence en temps réel. C'est ce qui la rend indispensable pour les fichiers qui évoluent constamment, où tu ajoutes régulièrement de nouvelles lignes de données.

Dans ce guide complet, tu vas découvrir comment utiliser DECALER pour créer des plages nommées dynamiques, des moyennes mobiles, et des graphiques qui s'actualisent automatiquement. Tu verras également comment éviter les pièges courants et optimiser tes performances.

Syntaxe de la fonction DECALER

=DECALER(réf; lignes; colonnes; [hauteur]; [largeur])

DECALER prend une référence de départ et la déplace selon le nombre de lignes et de colonnes que tu spécifies. Tu peux aussi redimensionner la plage résultante avec les paramètres optionnels hauteur et largeur. C'est cette flexibilité qui en fait une fonction si polyvalente.

Comprendre chaque paramètre de la fonction DECALER

1

réf

(obligatoire)

C'est ta cellule ou plage de référence de départ. Ça peut être une cellule unique comme A1, ou une plage comme A1:B5. C'est le point d'ancrage à partir duquel DECALER va calculer le décalage. Si tu utilises une plage, DECALER prendra la cellule en haut à gauche comme point de départ.

2

lignes

(obligatoire)

Le nombre de lignes à décaler par rapport à ta référence. Un nombre positif déplace vers le bas, un nombre négatif vers le haut. Par exemple, 2 signifie "descend de 2 lignes", et -1 signifie "monte d'une ligne". Utilise 0 si tu ne veux pas de décalage vertical.

3

colonnes

(obligatoire)

Le nombre de colonnes à décaler. Un nombre positif déplace vers la droite, un nombre négatif vers la gauche. Par exemple, 3 signifie "va 3 colonnes à droite", et -2 signifie "va 2 colonnes à gauche". Utilise 0 pour rester dans la même colonne.

4

hauteur

(optionnel)

Le nombre de lignes que doit faire ta plage résultante. Si tu omets ce paramètre, DECALER conserve la hauteur de ta référence de départ. C'est ici que la magie opère : tu peux utiliser des formules comme NB.VAL(A:A) pour créer une plage qui s'étend automatiquement jusqu'à la dernière valeur de ta colonne.

5

largeur

(optionnel)

Le nombre de colonnes que doit faire ta plage résultante. Si tu l'omets, DECALER conserve la largeur de ta référence. Combine ce paramètre avec hauteur pour redimensionner complètement ta plage de façon dynamique. Très utile pour sélectionner automatiquement exactement les données dont tu as besoin.

Astuce de pro : La puissance de DECALER réside dans la combinaison des paramètres hauteur et largeur avec des fonctions comme NB.VAL, NBVAL ou LIGNES. Cela te permet de créer des plages qui s'ajustent automatiquement quand tu ajoutes ou supprimes des données. Plus besoin de modifier manuellement tes formules !

Exemples pratiques pas à pas

Exemple 1 – Analyste financier : création de plages dynamiques pour graphiques

Tu es analyste financier et tu dois créer un graphique des ventes qui se met à jour automatiquement quand de nouvelles données sont ajoutées chaque semaine. Au lieu de modifier manuellement la source du graphique, tu utilises DECALER pour créer une plage nommée dynamique.

Nomme cette formule 'DonnéesVentes' dans le Gestionnaire de noms. Ton graphique référence maintenant DonnéesVentes au lieu de A2:B6, et s'étendra automatiquement avec chaque nouvelle semaine ajoutée.

AB
1SemaineVentes (k€)
2S145
3S252
4S348
5S461
6S555
Formule :=DECALER($A$1;1;0;NB.VAL($B:$B);2)
Résultat :A2:B6

La formule commence à A1, descend d'une ligne (pour éviter l'en-tête), ne se décale pas en colonnes, prend autant de lignes qu'il y a de valeurs numériques dans la colonne B, et s'étend sur 2 colonnes. Magique !

Exemple 2 – Contrôleur de gestion : extraction des N dernières valeurs

Tu es contrôleur de gestion et tu veux créer un tableau de bord qui affiche toujours les 3 derniers mois de chiffre d'affaires, peu importe combien de mois sont dans ta base de données. DECALER te permet d'extraire dynamiquement cette fenêtre glissante.

Cette formule calcule combien il y a de valeurs dans la colonne B, puis positionne le curseur 3 lignes avant la fin et sélectionne les 3 dernières valeurs. Parfait pour un dashboard en temps réel.

ABC
1MoisCA (k€)Top 3
2Jan125
3Fév138
4Mar142
5Avr151151
6Mai148148
7Jun159159
Formule :=DECALER(B$1;NB.VAL(B:B)-3;0;3;1)
Résultat :Plage B4:B6 (Avr, Mai, Jun)

Tu peux combiner cette plage avec MOYENNE, SOMME ou MAX pour obtenir des statistiques sur les N dernières périodes. Change le 3 par le nombre de périodes que tu veux analyser.

Exemple 3 – Data analyst : calcul de moyennes mobiles sur 5 périodes

Tu es data analyst et tu dois identifier les tendances dans les données de trafic web en calculant une moyenne mobile. DECALER excelle dans ce cas d'usage en créant automatiquement une fenêtre glissante qui se déplace avec tes données.

La formule utilise LIGNE() pour s'ajuster automatiquement à chaque ligne. Quand tu la copies vers le bas, elle calcule toujours la moyenne des 5 derniers mois. Idéal pour lisser les variations saisonnières.

ABC
1MoisVisiteursMoy. 5 mois
2Jan12500
3Fév13200
4Mar11800
5Avr14100
6Mai1340013000
7Jun1520013540
8Jul1480013860
Formule :=MOYENNE(DECALER(B2;LIGNE()-6;0;5;1))
Résultat :13540 (pour juin)

Copie cette formule vers le bas à partir de la 5ème ligne de données. Les 4 premières lignes resteront vides car tu n'as pas encore 5 valeurs pour calculer la moyenne. C'est normal !

Exemple 4 – Manager commercial : tableaux de bord avec données glissantes

Tu es manager commercial et tu veux créer un rapport qui montre toujours les performances des X derniers jours, où X est choisi par l'utilisateur via une cellule de contrôle. DECALER combiné avec une cellule input te donne cette flexibilité.

L'utilisateur change la valeur dans B1 (7, 14, 30 jours...) et toutes les formules s'ajustent automatiquement. La plage sélectionnée change de taille dynamiquement selon cette valeur. Parfait pour des rapports interactifs.

ABCD
1Période:7 jours
2JourVentes (€)Performance
3Lun24002200Dern. 7j
4Mar26502350visible
5Mer22002450selon
6Jeu23502700cellule
7Ven24502800B1
8Sam27002400(7 jours)
9Dim28002650
Formule :=SOMME(DECALER(B2;NB.VAL(B:B)-$B$1;0;$B$1;1))
Résultat :17550 € (somme des 7 derniers jours)

Tu peux aussi utiliser cette technique avec une liste déroulante pour créer des visualisations vraiment interactives. Combine avec des graphiques pour un effet wahou garanti !

Astuces et bonnes pratiques

Utilise des références absolues pour la cellule de départ

Quand tu crées des formules DECALER que tu vas copier, utilise des références absolues comme $A$1 pour la référence de départ. Cela évite que ton point d'ancrage se déplace quand tu copies la formule.

Nomme tes plages DECALER pour plus de clarté

Au lieu d'avoir des formules complexes partout, crée une plage nommée (Ctrl+F3) avec ta formule DECALER. Par exemple, nomme =DECALER(A1;0;0;NB.VAL(A:A);1) comme "VentesDynamiques". Tes autres formules deviennent plus lisibles : =SOMME(VentesDynamiques).

Combine DECALER avec des fonctions de comptage

Les fonctions NB.VAL, NBVAL et NB.SI sont tes meilleures amies avec DECALER. Elles te permettent de calculer dynamiquement la hauteur ou la largeur de ta plage. Exemple : NB.SI(A:A;"Vendu") pour compter uniquement les lignes avec le statut "Vendu".

Attention aux performances dans les gros fichiers

DECALER est volatile : elle recalcule à chaque modification de la feuille. Dans un fichier avec des milliers de lignes et de nombreuses formules DECALER, cela peut causer des ralentissements. Si tu n'as pas besoin de plages dynamiques, privilégie INDEX/EQUIV qui sont plus performants.

Les erreurs fréquentes et comment les corriger

#REF! - Référence invalide

Cette erreur survient quand le décalage pointe en dehors des limites de la feuille Excel. Par exemple, si tu essaies de décaler de 1 million de lignes vers le bas à partir d'une cellule qui est déjà proche de la fin de la feuille, Excel ne peut pas créer cette référence.

Solution : Utilise les fonctions MIN et MAX pour limiter tes décalages : =DECALER(A1;MIN(lignes;1000);0). Vérifie aussi que ta hauteur et largeur ne dépassent pas les limites de ta feuille.

#VALEUR! - Arguments incorrects

Les paramètres lignes, colonnes, hauteur et largeur doivent être des nombres. Si tu passes du texte, une référence qui contient du texte, ou une formule qui ne retourne pas un nombre, Excel affiche cette erreur.

Solution : Vérifie que tes fonctions de comptage comme NB.VAL() retournent bien des nombres entiers. Utilise la fonction ESTNUM() pour tester tes valeurs si tu as un doute.

Hauteur ou largeur négative ou nulle

Les paramètres hauteur et largeur doivent être des entiers positifs supérieurs à zéro. Si ta formule de calcul (comme NB.VAL) retourne 0 parce qu'il n'y a pas encore de données, DECALER génère une erreur.

Solution : Utilise MAX pour garantir une valeur minimale de 1 : =DECALER(A1;0;0;MAX(NB.VAL(A:A);1);1). Cela fonctionne même quand ta colonne est vide.

Fichier qui devient lent

Si ton fichier Excel devient lent après avoir ajouté des formules DECALER, c'est normal. DECALER est une fonction volatile qui recalcule à chaque modification, même si les cellules qu'elle référence n'ont pas changé. Plus tu as de formules DECALER, plus l'impact est important.

Solution : Limite l'utilisation de DECALER aux cas où tu as vraiment besoin de plages dynamiques. Pour les recherches simples, utilise INDEX/EQUIV à la place. Tu peux aussi passer ton mode de calcul en "Manuel" (Formules > Options de calcul > Manuel) et déclencher les calculs avec F9 uniquement quand tu en as besoin.

DECALER vs INDEX vs INDIRECT

CritèreDECALERINDEXINDIRECT
Type de retourRéférenceValeurRéférence
Plages dynamiques✅ Excellent⚠️ Limité✅ Oui
Performance⚠️ Volatile✅ Rapide⚠️ Volatile
Redimensionnement✅ Oui❌ Non❌ Non
Graphiques✅ Parfait⚠️ Possible✅ Oui
Complexité⭐⭐⭐⭐⭐⭐⭐⭐⭐

Utilise DECALER quand tu as besoin de plages qui changent de taille ou de position dynamiquement, surtout pour des graphiques ou des plages nommées. Préfère INDEX pour extraire des valeurs spécifiques avec de meilleures performances. INDIRECT est utile pour des références textuelles mais encore plus volatile que DECALER.

Questions fréquentes

Quelle est la différence entre DECALER et INDEX ?

DECALER retourne une référence de cellule ou de plage dynamique, tandis qu'INDEX retourne la valeur d'une cellule spécifique. DECALER est idéal pour créer des plages nommées dynamiques qui s'ajustent automatiquement, alors qu'INDEX est parfait pour extraire des valeurs précises d'un tableau. Utilise DECALER quand tu as besoin d'une référence qui change de taille ou de position.

Comment utiliser DECALER pour créer une moyenne mobile ?

Utilise =MOYENNE(DECALER(A1;LIGNES($A$1:A1)-5;0;5;1)) pour calculer la moyenne des 5 dernières valeurs. Le nombre de lignes s'ajuste automatiquement à mesure que tu copies la formule vers le bas. Cette technique est parfaite pour analyser les tendances dans des données de ventes ou de performance.

Pourquoi DECALER est-elle considérée comme une fonction volatile ?

DECALER est volatile car elle recalcule à chaque modification de la feuille, même si les cellules référencées n'ont pas changé directement. Cela peut ralentir les fichiers volumineux avec beaucoup de formules. Privilégie INDEX/EQUIV quand tu n'as pas besoin de plages dynamiques pour de meilleures performances.

Peut-on utiliser DECALER avec des plages non contiguës ?

Non, DECALER retourne toujours une plage rectangulaire continue. Les paramètres hauteur et largeur définissent les dimensions de cette plage à partir du point de départ décalé. Si tu as besoin de sélectionner des plages non contiguës, tu devras utiliser plusieurs formules DECALER séparées.

Comment combiner DECALER avec NB.VAL pour une plage dynamique ?

Utilise =SOMME(DECALER(A1;0;0;NB.VAL(A:A);1)) pour créer une somme qui s'étend automatiquement jusqu'à la dernière valeur numérique de la colonne A, sans inclure les cellules vides. C'est parfait pour des bases de données qui s'agrandissent régulièrement, comme des listes de ventes ou de transactions.

Les fonctions similaires à DECALER

Deviens un pro d'Excel

Tu maîtrises maintenant DECALER ! Rejoins Le Dojo Club pour découvrir les autres fonctions avancées et devenir vraiment efficace sur Excel.

Essayer pendant 30 jours