Qu'est-ce que la fonction INDIRECT Excel ?
La fonction INDIRECT, comme son nom l'indique, permet de faire référence à une cellule ou une plage de cellules de manière indirecte. Au lieu de spécifier directement la référence (par exemple, A1 ou B2:B10), vous indiquez à Excel où trouver cette référence. Elle renvoie le contenu de la cellule spécifiée par une chaîne de texte. C'est un peu comme demander à quelqu'un de vous indiquer où se trouve un objet, plutôt que d'aller le chercher vous-même.
La syntaxe de la fonction INDIRECT 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 de cellule. Cette chaîne peut être une référence directe (par exemple, "A1") ou une expression qui génère une référence (par exemple, "A" & 1).
- a1 : C'est l'argument facultatif. Il s'agit d'une valeur logique (VRAI ou FAUX) qui indique le type 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"). Sia1est FAUX,réf_texteest interprété comme une référence de style L1C1 (ligne 1, colonne 1). Nous allons principalement nous concentrer sur le style A1, qui est le plus couramment utilisé.
Comprendre la différence entre référence directe et référence indirecte
Pour bien saisir l'intérêt de la fonction INDIRECT, comparons une référence directe et une référence indirecte.
- Référence directe :
=A1Cette formule renvoie directement le contenu de la cellule A1. Si le contenu de A1 change, la valeur renvoyée par la formule change également. Si vous déplacez la cellule contenant la formule, la référenceA1reste fixe. - Référence indirecte :
=INDIRECT("A1")Cette formule renvoie également le contenu de la cellule A1. Cependant, la référence est spécifiée sous forme de texte. L'avantage est que vous pouvez manipuler ce texte pour créer des références dynamiques. Si vous déplacez la cellule contenant la formule, la référence "A1" reste fixe, mais vous pouvez modifier cette chaine de caractères via une autre cellule.
Pourquoi utiliser la fonction INDIRECT ?
La fonction INDIRECT offre plusieurs avantages :
- Références dynamiques : C'est le principal atout de la fonction. Vous pouvez créer des références qui changent en fonction du contenu d'autres cellules. Cela permet d'automatiser vos feuilles de calcul et de créer des tableaux de bord interactifs.
- Lisibilité des formules : Dans certains cas, la fonction INDIRECT peut rendre vos formules plus lisibles, surtout si vous utilisez des noms définis (nous y reviendrons).
- Accès à des feuilles de calcul différentes : Vous pouvez utiliser INDIRECT pour faire référence à des cellules situées dans d'autres feuilles de calcul, même si le nom de la feuille est stocké dans une cellule.
- Contourner les limitations de certaines fonctions : Certaines fonctions Excel ne permettent pas d'utiliser des références dynamiques. La fonction INDIRECT peut vous aider à contourner ces limitations.
Exemples pratiques d'utilisation de la fonction INDIRECT
Voici quelques exemples concrets pour illustrer l'utilisation de la fonction INDIRECT.
Exemple 1 : Référence à une cellule spécifiée par l'utilisateur
Imaginez que vous voulez permettre à un utilisateur de choisir la cellule dont il souhaite afficher la valeur. Vous pouvez utiliser la fonction INDIRECT pour cela.
- Dans la cellule A1, entrez le texte "B2" (sans les guillemets).
- Dans la cellule C1, entrez la formule suivante :
=INDIRECT(A1)
La cellule C1 affichera le contenu de la cellule B2. Si vous changez le contenu de la cellule A1 (par exemple, en entrant "C3"), la cellule C1 affichera le contenu de la cellule C3.
Explication : La fonction INDIRECT prend le contenu de la cellule A1 (qui est une chaîne de texte représentant une référence de cellule) et renvoie le contenu de la cellule correspondante.
Exemple 2 : Somme dynamique d'une plage de cellules
Supposons que vous ayez des données de ventes mensuelles dans les colonnes B à M. Vous voulez calculer la somme des ventes pour une période spécifiée par l'utilisateur (par exemple, du mois 3 au mois 6).
- Dans la cellule A1, entrez le numéro du mois de début (par exemple, 3).
- Dans la cellule B1, entrez le numéro du mois de fin (par exemple, 6).
- Dans la cellule C1, entrez la formule suivante :
=SOMME(INDIRECT("B"&A1&":B"&B1))
La cellule C1 affichera la somme des ventes des mois 3 à 6 (c'est-à-dire la somme des cellules B3 à B6).
Explication :
"B"&A1concatène la lettre "B" avec le numéro du mois de début (par exemple, "B3")."B"&B1concatène la lettre "B" avec le numéro du mois de fin (par exemple, "B6")."B"&A1&":B"&B1concatène les deux chaînes précédentes avec le signe deux-points (":") pour former une référence de plage (par exemple, "B3:B6").INDIRECT("B"&A1&":B"&B1)transforme la chaîne de texte en une référence de plage réelle.SOMME(INDIRECT("B"&A1&":B"&B1))calcule la somme des valeurs dans la plage spécifiée.
Exemple 3 : Utilisation de noms définis avec la fonction INDIRECT
Les noms définis permettent d'attribuer un nom significatif à une cellule ou une plage de cellules. Vous pouvez utiliser la fonction INDIRECT avec des noms définis pour rendre vos formules plus lisibles.
- Sélectionnez la cellule B2 et définissez un nom pour cette cellule (par exemple, "PrixUnitaire"). Pour ce faire, allez dans l'onglet "Formules", cliquez sur "Définir un nom", et entrez le nom "PrixUnitaire".
- Dans la cellule C1, entrez la formule suivante :
=INDIRECT("PrixUnitaire")
La cellule C1 affichera le contenu de la cellule B2 (qui est nommée "PrixUnitaire").
Explication : La fonction INDIRECT prend le nom défini "PrixUnitaire" et renvoie le contenu de la cellule correspondante. L'utilisation de noms définis rend la formule plus facile à comprendre.
Exemple 4 : Accéder à des données dans différentes feuilles de calcul
Supposons que vous ayez plusieurs feuilles de calcul, chacune contenant des données pour un mois différent (par exemple, "Janvier", "Février", "Mars", etc.). Vous voulez créer une formule qui affiche les données d'un mois spécifique, en fonction du nom du mois entré par l'utilisateur.
- Dans la cellule A1, entrez le nom du mois (par exemple, "Janvier").
- Dans la cellule B1, entrez la formule suivante :
=INDIRECT("'"&A1&"'!B2")
La cellule B1 affichera le contenu de la cellule B2 dans la feuille de calcul nommée "Janvier".
Explication :
"'"&A1&"'!"concatène le nom du mois avec des guillemets simples et un point d'exclamation pour former une référence de feuille de calcul (par exemple, "'Janvier'!")."'"&A1&"'!B2"concatène la référence de feuille de calcul avec la référence de cellule B2 (par exemple, "'Janvier'!B2").INDIRECT("'"&A1&"'!B2")transforme la chaîne de texte en une référence de cellule dans une autre feuille de calcul.
Bonnes pratiques et erreurs à éviter
Voici quelques conseils pour utiliser la fonction INDIRECT efficacement et éviter les erreurs courantes :
- Utilisez des noms définis : Les noms définis rendent vos formules plus lisibles et plus faciles à maintenir.
- Vérifiez la validité des références : Assurez-vous que la chaîne de texte que vous passez à la fonction INDIRECT représente une référence de cellule valide. Sinon, la fonction renverra une erreur
#REF!. - Évitez les références circulaires : Ne créez pas de références circulaires en utilisant la fonction INDIRECT. Cela peut entraîner des problèmes de performance et des résultats inattendus.
- Soyez conscient de la volatilité : La fonction INDIRECT est une fonction volatile, ce qui 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 la performance de votre feuille de calcul si vous utilisez la fonction INDIRECT de manière excessive. Essayez de limiter son utilisation aux cas où elle est vraiment nécessaire.
- Utilisez la fonction ADRESSE pour créer des références : Au lieu de construire manuellement les chaînes de texte pour les références, vous pouvez utiliser la fonction ADRESSE pour générer la chaîne de texte représentant une référence de cellule. Cela peut rendre vos formules plus robustes.
- Comprendre les styles de référence A1 et L1C1 : Bien que le style A1 soit le plus courant, comprendre le style L1C1 peut être utile dans certains cas avancés. Le style L1C1 utilise des numéros de ligne et de colonne au lieu de lettres et de chiffres (par exemple,
R1C1pour la cellule A1). Pour utiliser le style L1C1, vous devez spécifierFAUXcomme deuxième argument de la fonction INDIRECT.
Alternatives à la fonction INDIRECT
Dans certains cas, il existe des alternatives à la fonction INDIRECT qui peuvent être plus performantes ou plus faciles à utiliser.
- INDEX et EQUIV : Les fonctions INDEX et EQUIV peuvent être utilisées pour effectuer des recherches dynamiques dans des tableaux de données. Elles sont souvent plus performantes que la fonction INDIRECT.
- DECALER : La fonction DECALER permet de renvoyer une plage de cellules qui est décalée d'un certain nombre de lignes et de colonnes par rapport à une cellule de référence. Elle peut être utilisée pour créer des références dynamiques.
- Tableaux structurés : Les tableaux structurés (introduits dans Excel 2007) offrent de nombreux avantages pour la gestion des données, notamment la possibilité de créer des références structurées qui sont automatiquement mises à jour lorsque le tableau est modifié.
Conclusion
La fonction INDIRECT est un outil puissant qui permet de créer des références de cellules dynamiques dans Excel. Elle peut être utilisée pour automatiser vos feuilles de calcul, créer des tableaux de bord interactifs et rendre vos formules plus flexibles. Cependant, il est important de comprendre son fonctionnement et de l'utiliser avec précaution pour éviter les erreurs courantes et les problèmes de performance. En maîtrisant la fonction INDIRECT, vous pourrez exploiter pleinement le potentiel d'Excel et gagner en efficacité.