Comprendre la fonction Excel INDIRECT
La fonction INDIRECT d'Excel permet de renvoyer la référence spécifiée par une chaîne de texte. En d'autres termes, elle transforme un texte en référence de cellule ou de plage de cellules. C'est un peu comme si vous disiez à Excel : « Prends ce texte, interprète-le comme une adresse, et donne-moi le contenu de cette adresse. »
Sa syntaxe est la suivante :
=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 à une cellule ou à une plage de cellules. Cette chaîne peut être saisie directement entre guillemets, ou provenir d'une autre cellule.
- [a1] : C'est l'argument facultatif. Il indique le style de référence utilisé dans
réf_texte. Sia1est VRAI (ou omis),réf_texteest interprété comme une référence de style A1 (par exemple, "A1", "B2:C10"). Sia1est FAUX,réf_texteest interprété comme une référence de style L1C1 (par exemple, "L1C1", "L2C3:L10C4"). Le style L1C1 utilise les numéros de ligne (L) et de colonne (C).
Pourquoi utiliser INDIRECT ?
La fonction INDIRECT est particulièrement utile dans les situations suivantes :
- Créer des références dynamiques : Vous pouvez modifier la référence d'une cellule ou d'une plage en modifiant simplement le texte de la référence, sans avoir à modifier la formule elle-même.
- Référencer des feuilles de calcul dont le nom est variable : Vous pouvez construire le nom de la feuille de calcul à partir d'autres cellules, ce qui permet de changer de feuille référencée dynamiquement.
- Simplifier les formules complexes : En utilisant INDIRECT, vous pouvez rendre les formules plus lisibles et plus faciles à comprendre.
- Créer des listes déroulantes dépendantes : INDIRECT peut être utilisé pour créer des listes déroulantes dont le contenu dépend de la sélection faite dans une autre liste déroulante.
Exemples pratiques d'utilisation de la fonction INDIRECT
Exemple 1 : Référence simple à une cellule
Supposons que la cellule A1 contienne le texte "B5". La formule suivante renverra la valeur de la cellule B5 :
=INDIRECT(A1)
Si la cellule B5 contient la valeur 10, la formule =INDIRECT(A1) renverra 10.
Exemple 2 : Référence à une plage de cellules
Supposons que la cellule A2 contienne le texte "C1:C10". La formule suivante calculera la somme des valeurs de la plage C1:C10 :
=SOMME(INDIRECT(A2))
Exemple 3 : Référence à une feuille de calcul dynamique
Supposons que la cellule A3 contienne le texte "Feuil2!D3". La formule suivante renverra la valeur de la cellule D3 de la feuille "Feuil2" :
=INDIRECT(A3)
Vous pouvez rendre cela dynamique en utilisant une formule pour construire le nom de la feuille. Par exemple, si la cellule B3 contient le numéro de la feuille (par exemple, 2), vous pouvez utiliser la formule suivante :
=INDIRECT("Feuil"&B3&"!D3")
Exemple 4 : Création d'une liste déroulante dépendante
Cet exemple est plus complexe mais illustre bien la puissance d'INDIRECT.
- Créez deux listes de données nommées. Par exemple, une liste nommée "Fruits" contenant "Pomme", "Banane", "Orange", et une autre nommée "Legumes" contenant "Carotte", "Tomate", "Courgette".
- Dans une cellule (par exemple, A1), créez une liste déroulante (Données > Validation des données) qui permet de choisir entre "Fruits" et "Legumes".
- Dans une autre cellule (par exemple, B1), créez une liste déroulante avec la formule suivante dans la source de données :
=INDIRECT(A1). La liste déroulante en B1 affichera alors le contenu de la liste "Fruits" si vous avez sélectionné "Fruits" en A1, et le contenu de la liste "Legumes" si vous avez sélectionné "Legumes" en A1.
Explication: La fonction INDIRECT utilise le contenu de la cellule A1 (qui sera soit "Fruits", soit "Legumes") pour déterminer quelle plage de données (c'est-à-dire, quelle liste nommée) doit être utilisée comme source de données pour la deuxième liste déroulante.
Exemple 5 : Utilisation avec la fonction ADRESSE
La fonction ADRESSE renvoie l'adresse d'une cellule sous forme de texte, en fonction des numéros de ligne et de colonne que vous spécifiez. Vous pouvez combiner INDIRECT et ADRESSE pour créer des références encore plus dynamiques.
Par exemple, la formule suivante renvoie la valeur de la cellule située 5 lignes en dessous et 3 colonnes à droite de la cellule A1 :
=INDIRECT(ADRESSE(LIGNE(A1)+5;COLONNE(A1)+3))
Bonnes pratiques et erreurs à éviter
Bonnes pratiques :
- Utiliser des noms définis : Au lieu d'utiliser des références de cellules directes dans vos formules INDIRECT, utilisez des noms définis. Cela rendra vos formules plus lisibles et plus faciles à maintenir. Par exemple, au lieu d'utiliser
=INDIRECT("A1"), vous pouvez définir un nom (par exemple, "CelluleReference") qui fait référence à la cellule A1, et utiliser=INDIRECT(CelluleReference). - Commenter vos formules : Si vous utilisez INDIRECT dans des formules complexes, ajoutez des commentaires pour expliquer ce que fait chaque partie de la formule. Cela facilitera la compréhension et la maintenance de vos feuilles de calcul.
- Tester vos formules : Assurez-vous de tester soigneusement vos formules INDIRECT pour vous assurer qu'elles fonctionnent correctement dans toutes les situations.
Erreurs à éviter :
- Erreur #REF! : Cette erreur se produit généralement lorsque la chaîne de texte passée à INDIRECT ne correspond pas à une référence de cellule ou de plage valide. Vérifiez que la chaîne de texte est correctement formatée et que la cellule ou la plage référencée existe.
- Utilisation excessive : Bien que INDIRECT soit puissant, son utilisation excessive peut rendre vos feuilles de calcul plus lentes et plus difficiles à comprendre. Utilisez-le uniquement lorsque cela est nécessaire.
- Références circulaires : Évitez de créer des références circulaires avec INDIRECT, car cela peut entraîner des erreurs et des comportements inattendus.
- Modification accidentelle des références : Soyez prudent lorsque vous modifiez les cellules qui contiennent les références utilisées par INDIRECT, car cela peut affecter le résultat de vos formules.
Alternatives à la fonction INDIRECT
Dans certaines situations, il existe des alternatives à la fonction INDIRECT qui peuvent être plus simples ou plus efficaces.
- INDEX et EQUIV : Ces fonctions peuvent être utilisées pour créer des références dynamiques basées sur des critères de recherche.
- DECALER : Cette fonction renvoie une plage de cellules qui est décalée par rapport à une cellule de référence. Elle peut être utile pour créer des références dynamiques à des plages de données.
- Les tableaux structurés : Les tableaux structurés permettent de référencer des colonnes par leur nom, ce qui peut simplifier les formules et les rendre plus lisibles. Ils sont particulièrement utiles lorsque vous ajoutez ou supprimez des lignes ou des colonnes.
Conclusion
La fonction INDIRECT d'Excel est un outil précieux pour créer des feuilles de calcul dynamiques et flexibles. En comprenant son fonctionnement et en l'utilisant avec précaution, vous pouvez simplifier vos formules, automatiser vos tâches et gagner en efficacité. N'hésitez pas à explorer les exemples et les conseils présentés dans cet article pour maîtriser cette fonction et repousser les limites de vos compétences Excel. Alors, prêt à donner une nouvelle dimension à vos feuilles de calcul avec INDIRECT ?