Comprendre la formule INDIRECT Excel
La formule INDIRECT est une fonction d'Excel qui renvoie la référence spécifiée par une chaîne de texte. En d'autres termes, elle transforme un texte en une référence de cellule ou de plage. Sa syntaxe est simple, mais ses applications sont vastes.
=INDIRECT(réf_texte; [a1])
réf_texte: C'est l'argument obligatoire. Il s'agit d'une chaîne de texte qui représente une référence de cellule ou de plage. Cette chaîne peut être une référence directe (par exemple, "A1") ou une référence construite dynamiquement à partir d'autres cellules.a1: C'est l'argument facultatif. Il s'agit d'une valeur logique (VRAI ou FAUX) qui spécifie le style de référence utilisé dansréf_texte. Sia1est VRAI (ou omis),réf_texteest interprété comme une référence de style A1 (par exemple, "A1"). Sia1est FAUX,réf_texteest interprété comme une référence de style L1C1 (ligne 1, colonne 1). Le style L1C1 est moins courant, mais peut être utile dans certaines situations.
Pourquoi utiliser INDIRECT ?
La principale raison d'utiliser INDIRECT est la dynamisation des références. Au lieu d'avoir une référence fixe dans une formule, vous pouvez utiliser INDIRECT pour créer une référence qui dépend du contenu d'une autre cellule. Cela permet de créer des formules plus flexibles et adaptables.
Par exemple, imaginez que vous avez plusieurs feuilles de calcul contenant des données similaires. Vous pouvez utiliser INDIRECT pour créer une formule qui récupère les données de la feuille spécifiée dans une cellule particulière. Si vous changez le nom de la feuille dans cette cellule, la formule se mettra à jour automatiquement pour récupérer les données de la nouvelle feuille.
Exemples pratiques de la formule INDIRECT
Exemple 1 : Référence à une cellule unique
Supposons que la cellule A1 contienne le texte "B2". La formule suivante renverra la valeur de la cellule B2 :
=INDIRECT(A1)
Explication :
A1contient le texte "B2", qui est interprété comme une référence de cellule.INDIRECT(A1)renvoie donc la valeur de la cellule B2.
Cas d'utilisation : Ce cas peut être utile si vous souhaitez créer un tableau de bord où l'utilisateur peut sélectionner une cellule à afficher.
Exemple 2 : Référence à une plage de cellules
Supposons que la cellule A1 contienne le texte "B2:B10". La formule suivante renverra la somme des valeurs de la plage B2:B10 :
=SOMME(INDIRECT(A1))
Explication :
A1contient le texte "B2:B10", qui est interprété comme une référence de plage de cellules.INDIRECT(A1)renvoie donc la plage de cellules B2:B10.SOMME(INDIRECT(A1))calcule la somme des valeurs de cette plage.
Cas d'utilisation : Ce cas peut être utile si vous souhaitez calculer des statistiques sur une plage de cellules qui peut changer en fonction de certains critères.
Exemple 3 : Référence à une feuille de calcul différente
Supposons que la cellule A1 contienne le texte "'Feuil2'!B2". La formule suivante renverra la valeur de la cellule B2 de la feuille "Feuil2" :
=INDIRECT(A1)
Explication :
A1contient le texte "'Feuil2'!B2", qui est interprété comme une référence à une cellule dans une autre feuille.INDIRECT(A1)renvoie donc la valeur de la cellule B2 de la feuille "Feuil2".
Cas d'utilisation : Ce cas est très utile pour consolider des données provenant de plusieurs feuilles de calcul.
Exemple 4 : Utilisation avec la fonction ADRESSE
La fonction ADRESSE permet de construire une référence de cellule sous forme de texte à partir d'un numéro de ligne et d'un numéro de colonne. Vous pouvez combiner INDIRECT et ADRESSE pour créer des références encore plus dynamiques.
Par exemple, la formule suivante renverra la valeur de la cellule située à la ligne 5 et à la colonne 3 (c'est-à-dire la cellule C5) :
=INDIRECT(ADRESSE(5;3))
Explication :
ADRESSE(5;3)renvoie le texte "C5".INDIRECT(ADRESSE(5;3))renvoie donc la valeur de la cellule C5.
Cas d'utilisation : Ce cas peut être utile si vous souhaitez créer une formule qui récupère une valeur en fonction de la position relative d'une autre cellule.
Exemple 5 : Création de listes déroulantes dynamiques
INDIRECT est souvent utilisé pour créer des listes déroulantes dynamiques. Imaginez que vous avez plusieurs listes de produits, chacune associée à une catégorie. Vous pouvez utiliser INDIRECT pour créer une liste déroulante qui affiche les produits correspondant à la catégorie sélectionnée.
Étapes :
- Définir des plages nommées : Créez des plages nommées pour chaque catégorie de produits. Par exemple, vous pourriez avoir une plage nommée "Fruits" contenant la liste des fruits, une plage nommée "Légumes" contenant la liste des légumes, etc.
- Créer une liste déroulante pour les catégories : Créez une liste déroulante dans une cellule (par exemple, A1) qui permet à l'utilisateur de sélectionner une catégorie (par exemple, "Fruits", "Légumes").
-
Utiliser INDIRECT pour la liste déroulante des produits : Créez une deuxième liste déroulante (par exemple, dans la cellule B1) en utilisant la formule suivante :
excel =INDIRECT(A1)Cette formule utilise la valeur sélectionnée dans la cellule A1 (la catégorie) comme nom de la plage à afficher dans la liste déroulante des produits.
Explication :
- Lorsque l'utilisateur sélectionne une catégorie dans la cellule A1, la formule
INDIRECT(A1)renvoie la plage nommée correspondant à cette catégorie. - La liste déroulante dans la cellule B1 affiche alors les éléments de cette plage.
Cas d'utilisation : Ce cas est très utile pour créer des formulaires interactifs et conviviaux.
Bonnes pratiques et erreurs à éviter avec la formule INDIRECT
Bonnes pratiques
- Utiliser des noms de plages : Au lieu d'utiliser des références de cellules directes dans
réf_texte, il est souvent préférable d'utiliser des noms de plages. Cela rend les formules plus lisibles et plus faciles à maintenir. - Valider les entrées : Assurez-vous que les cellules utilisées pour construire
réf_textecontiennent des valeurs valides. Sinon, la formuleINDIRECTrenverra une erreur. - Documenter les formules : Lorsque vous utilisez
INDIRECT, il est important de bien documenter vos formules pour que les autres utilisateurs (ou vous-même dans le futur) puissent comprendre comment elles fonctionnent.
Erreurs à éviter
- Erreur #REF! : Cette erreur se produit si
réf_textene contient pas une référence de cellule ou de plage valide. Vérifiez que le texte est correctement formaté et que la cellule ou la plage existe bien. - Erreur de performance : L'utilisation excessive de la formule
INDIRECTpeut ralentir les performances d'Excel, surtout si vos feuilles de calcul sont volumineuses. Essayez d'utiliserINDIRECTuniquement lorsque c'est vraiment nécessaire et d'optimiser vos formules autant que possible. - Références circulaires : Évitez de créer des références circulaires en utilisant
INDIRECT. Une référence circulaire se produit lorsque une formule fait référence à elle-même, directement ou indirectement. Cela peut entraîner des erreurs de calcul et des performances médiocres.
Alternatives à la formule INDIRECT
Bien que INDIRECT soit un outil puissant, il existe parfois des alternatives plus performantes ou plus faciles à utiliser.
- INDEX et EQUIV : Ces fonctions permettent de rechercher une valeur dans une plage en fonction de sa position. Elles peuvent souvent être utilisées à la place de
INDIRECTpour créer des références dynamiques. - DECALER : Cette fonction permet de décaler une référence de cellule d'un certain nombre de lignes et de colonnes. Elle peut être utile si vous souhaitez créer une référence qui dépend de la position relative d'une autre cellule.
- Les tableaux structurés : Les tableaux structurés (ou tables) permettent de créer des références dynamiques basées sur les noms de colonnes. Ils sont souvent plus faciles à utiliser et plus performants que
INDIRECT.
Conclusion
La formule INDIRECT est un outil précieux pour dynamiser vos feuilles de calcul Excel. En comprenant son fonctionnement et en suivant les bonnes pratiques, vous pouvez créer des formules plus flexibles, adaptables et interactives. N'hésitez pas à expérimenter avec les exemples présentés dans cet article et à explorer les différentes applications de cette fonction. Cependant, gardez à l'esprit les limitations de performance de INDIRECT et explorez les alternatives lorsque cela est possible. Avec un peu de pratique, vous maîtriserez rapidement cette formule et vous pourrez l'utiliser pour optimiser vos tableaux et gagner du temps.