Comprendre la fonction DECALER dans Excel
La fonction DECALER (ou OFFSET en anglais) est une fonction de recherche et de référence dans Excel. Elle renvoie une référence à une plage qui est un certain nombre de lignes et de colonnes à partir d'une référence de départ. Sa syntaxe est la suivante:
DECALER(référence; lignes; colonnes; [hauteur]; [largeur])
- référence: La cellule ou la plage de cellules à partir de laquelle le décalage est effectué. C'est le point de départ.
- lignes: Le nombre de lignes à décaler vers le haut (négatif) ou vers le bas (positif). Si vous mettez 0, le décalage ne se fait pas verticalement.
- colonnes: Le nombre de colonnes à décaler vers la gauche (négatif) ou vers la droite (positif). Si vous mettez 0, le décalage ne se fait pas horizontalement.
- [hauteur]: (Facultatif) La hauteur de la plage renvoyée, en nombre de lignes. Si omis, la hauteur est la même que celle de la
référence. - [largeur]: (Facultatif) La largeur de la plage renvoyée, en nombre de colonnes. Si omis, la largeur est la même que celle de la
référence.
Pourquoi utiliser DECALER ?
La fonction DECALER est particulièrement utile dans les situations suivantes:
- Création de plages dynamiques: Lorsque les données sources s'étendent (ajout de nouvelles lignes ou colonnes),
DECALERpermet d'ajuster automatiquement la plage référencée dans les formules. - Calculs basés sur des positions relatives: Elle permet de faire des calculs en fonction de la position d'une cellule par rapport à une autre.
- Réalisation de tableaux de bord interactifs: Combinée à d'autres fonctions (comme
INDEX,EQUIVou les contrôles de formulaire), elle permet de créer des tableaux de bord où les données affichées sont filtrées ou modifiées dynamiquement.
Exemples pratiques de la fonction DECALER
Exemple 1 : Décaler d'une cellule vers le bas et une cellule vers la droite
Supposons que vous ayez une valeur dans la cellule A1. Vous voulez récupérer la valeur de la cellule située une ligne en dessous et une colonne à droite (donc la cellule B2).
La formule serait:
=DECALER(A1; 1; 1)
Cette formule prend la cellule A1 comme référence, se décale d'une ligne vers le bas (1) et d'une colonne vers la droite (1), et renvoie le contenu de la cellule B2.
Exemple 2 : Créer une plage dynamique pour une somme
Imaginons que vous ayez une liste de chiffres dans la colonne A, et que vous voulez calculer la somme des 5 derniers chiffres. Le nombre de chiffres dans la colonne A peut varier. Vous pouvez utiliser DECALER pour définir une plage dynamique qui s'adapte automatiquement.
- Déterminer le nombre total de chiffres: Utilisez la fonction
NBVAL(A:A)pour compter le nombre de cellules non vides dans la colonne A. Disons que ce résultat est stocké dans la celluleC1. - Définir la plage dynamique: Utilisez la fonction
DECALERpour créer une plage qui commence 4 lignes avant la dernière cellule contenant un chiffre et qui a une hauteur de 5 lignes.
La formule serait:
=SOMME(DECALER(A1;C1-5;0;5;1))
A1: La cellule de départ.C1-5: Décalage du nombre total d'éléments moins 5 lignes vers le bas.0: Pas de décalage de colonne.5: La hauteur de la plage est de 5 lignes.1: La largeur de la plage est d'une colonne.
Cette formule calcule la somme des 5 dernières valeurs de la colonne A, même si le nombre total de valeurs change.
Exemple 3 : Créer un tableau de bord interactif avec DECALER et LISTE DE VALIDATION
Cet exemple montre comment utiliser DECALER combinée à une liste de validation pour créer un tableau de bord simple qui affiche des données en fonction d'un choix de l'utilisateur.
- Préparer les données: Créez un tableau de données avec des en-têtes de colonnes (par exemple, Mois, Ventes, Dépenses, Bénéfices).
- Créer une liste de validation: Créez une liste de validation dans une cellule (par exemple,
E1) qui contient les en-têtes de colonnes de votre tableau de données (Mois, Ventes, Dépenses, Bénéfices). Allez dans l'onglet Données, puis Validation des données. Choisissez Liste dans Autoriser et entrez vos en-têtes de colonnes séparés par des points-virgules dans le champ Source. - Utiliser DECALER pour afficher les données: Utilisez la fonction
DECALERcombinée àEQUIVpour afficher la colonne de données correspondant à la sélection de l'utilisateur dans la liste de validation.
La formule serait (en supposant que vos données commencent en A1 et que la liste de validation est en E1):
=DECALER(A1;1;EQUIV(E1;A1:D1;0)-1;NBVAL(A:A)-1;1)
A1: La cellule de départ.1: Décalage d'une ligne vers le bas pour ignorer l'en-tête.EQUIV(E1;A1:D1;0)-1:EQUIVrecherche la position de la valeur sélectionnée dans la liste de validation (E1) parmi les en-têtes de colonnes (A1:D1). On soustrait 1 carDECALERutilise un index de base 0.NBVAL(A:A)-1: La hauteur de la plage est le nombre total de valeurs dans la colonne A moins l'en-tête.1: La largeur de la plage est d'une colonne.
Cette formule affichera la colonne de données sélectionnée dans la liste de validation. Vous pouvez ensuite utiliser ces données pour créer des graphiques ou d'autres visualisations dans votre tableau de bord.
Bonnes pratiques et erreurs à éviter
Bonnes pratiques
- Utiliser des noms définis: Au lieu d'utiliser des références de cellules directes (comme
A1), utilisez des noms définis pour rendre vos formules plus lisibles et plus faciles à maintenir. Par exemple, vous pouvez nommer la cellule contenant le nombre total de chiffres "NombreDonnées" et utiliser ce nom dans votre formuleDECALER. - Commenter vos formules: Ajoutez des commentaires à vos formules pour expliquer leur fonctionnement, surtout si elles sont complexes. Vous pouvez utiliser la fonction
Npour ajouter des commentaires sans affecter le résultat de la formule. Par exemple:=SOMME(DECALER(A1;C1-5;0;5;1)) + N("Somme des 5 dernières valeurs") - Tester vos formules: Vérifiez que vos formules
DECALERrenvoient les résultats attendus, surtout lorsque vous les utilisez avec des plages dynamiques.
Erreurs à éviter
- Références circulaires: Faites attention à ne pas créer de références circulaires en utilisant
DECALER. Une référence circulaire se produit lorsqu'une formule fait référence à sa propre cellule, directement ou indirectement. Cela peut entraîner des erreurs de calcul et des ralentissements. - Décalages hors limites: Assurez-vous que les valeurs de
lignesetcolonnesne conduisent pas à des décalages qui sortent des limites de votre feuille de calcul. Cela peut entraîner des erreurs#REF!. - Oublier les ancrages de cellules: Lorsque vous copiez une formule
DECALER, vérifiez que vous avez correctement ancré les cellules (avec le symbole$) si nécessaire. L'ancrage de cellules permet de fixer une référence de cellule lorsque la formule est copiée.
Alternatives à la fonction DECALER
Bien que la fonction DECALER soit puissante, elle est aussi considérée comme une fonction volatile. Cela signifie qu'elle est recalculée à chaque fois que la feuille de calcul est modifiée, même si les cellules dont elle dépend n'ont pas changé. Cela peut ralentir les performances, surtout dans les feuilles de calcul complexes.
Voici quelques alternatives à DECALER:
- INDEX: La fonction
INDEXrenvoie la valeur d'une cellule dans une plage, en fonction de son numéro de ligne et de colonne. Elle est souvent plus performante queDECALER, surtout lorsqu'elle est combinée àEQUIV. - ADRESSE et INDIRECT:
ADRESSEconstruit une référence de cellule sous forme de texte, etINDIRECTconvertit ce texte en une référence de cellule réelle. Ces fonctions peuvent être utilisées pour créer des références dynamiques, mais elles peuvent être plus complexes à utiliser queDECALER. - RECHERCHEV/RECHERCHEH: Si vous cherchez à récupérer une valeur en fonction d'une correspondance dans une autre colonne ou ligne,
RECHERCHEVetRECHERCHEHpeuvent être des alternatives plus appropriées.
Conclusion
La fonction DECALER est un outil précieux pour créer des feuilles de calcul dynamiques et interactives dans Excel. En comprenant sa syntaxe et ses applications, vous pouvez automatiser des tâches, créer des tableaux de bord sophistiqués et gagner en efficacité. Bien qu'elle ait ses limites (notamment sa volatilité), elle reste une compétence essentielle pour tout utilisateur avancé d'Excel. N'hésitez pas à expérimenter avec les exemples présentés dans cet article et à explorer les nombreuses possibilités qu'offre cette fonction polyvalente.