Je sais que les experts d'Excel détestent cette fonction, mais c'est toujours mon « arme secrète » préférée.


Mentionnez la fonction INDIRECT dans un forum Excel et vous déclencherez une bagarre. Il est volatile, ce qui signifie qu'il est toujours éveillé et en train de recalculer, ce qui peut transformer une feuille de calcul rapide en un désordre lent. Mais utilisé correctement, c'est l'arme secrète d'un utilisateur expérimenté pour créer des tableaux de bord dynamiques et réactifs.

Bien que sa réputation de cause de décalage soit bien méritée, le véritable danger n'est pas la fonction elle-même : elle l'utilise pour le mauvais travail alors que de meilleures alternatives sont disponibles. Pour maîtriser INDIRECT, vous devez savoir quand adopter sa flexibilité et quand passer à une alternative plus stable.

Comment fonctionne la fonction INDIRECT

La plupart des fonctions Excel sont directes, mais INDIRECT est une carte d'une carte. Considérez-le comme une note sur une porte : au lieu d'entrer dans une maison (une formule standard), la note vous indique de vous rendre dans une maison entièrement différente pour retrouver vos données.

La syntaxe de la fonction INDIRECT d'Excel est simple :

=INDIRECT(ref_text,[a1])

où:

  • ref_text est une référence de cellule normale, une référence de style R1C1, une cellule nommée ou une référence à une cellule sous forme de chaîne de texte.
  • a1 (facultatif) est une valeur logique où VRAI (ou omis) interprète ref_text comme référence de style A1, et FALSE interprète ref_text comme référence de style R1C1.

Par défaut, Excel utilise des références de style A1 (les colonnes sont des lettres, les lignes sont des chiffres). Le style R1C1 utilise des nombres pour les colonnes et les lignes (par exemple, R2C1 correspond à la ligne 2, colonne 1). Ainsi, dans la plupart des cas, vous pouvez laisser le style a1 argument vide et passez à autre chose.

INDIRECT est idéal pour créer des listes déroulantes dépendantes

Supposons que vous ayez deux tables nommées dans votre feuille de calcul Excel : T_France et T_USA. Vous souhaitez que les options de votre cellule Ville (F2) changent automatiquement lorsque vous sélectionnez dans la cellule Pays (E2).

Une feuille Excel avec un tableau des villes françaises, un tableau des villes américaines et une zone de recherche où seront ajoutées des listes déroulantes en cascade.

Tout d’abord, créez une liste déroulante de pays dans la cellule E2. Sélectionnez cette cellule et dans l'onglet Données, cliquez sur « Validation des données ».

Une cellule dans Excel intitulée « Pays » est sélectionnée et le bouton Validation des données dans l'onglet Données est mis en surbrillance.

Ensuite, sélectionnez « Liste » dans le champ Autoriser, tapez France,États-Unis dans le champ Source, puis cliquez sur « OK ».

La liste est sélectionnée dans la boîte de dialogue de validation des données d'Excel et « France, États-Unis » est saisi dans le champ Source.

Enfin, sélectionnez la cellule F2 (où iront vos villes) et sélectionnez à nouveau « Liste » dans la boîte de dialogue de validation des données. Cette fois, cependant, vous allez utiliser la fonction INDIRECT dans le champ Source :

=INDIRECT("T_"&E2)
Une formule INDIRECTE qui pointe vers les noms de tableaux et une valeur dans la cellule E2 est saisie dans le champ Source de la boîte de dialogue Validation des données d'Excel.

Désormais, lorsque vous sélectionnez « USA » dans la cellule E2, la liste déroulante de la cellule F2 produit une liste de toutes les villes de votre table T_USA. En revanche, sélectionner « France » dans la cellule E2 vous donne une liste des villes françaises dans la cellule F2.

Listes déroulantes en cascade dans Excel qui affichent une liste de villes dans la cellule F2 en fonction du pays sélectionné dans la cellule E2.

Cela fonctionne grâce à l'esperluette (&) dans votre formule, qui prend le texte statique « T_ » et le colle au mot actuellement dans la cellule E2. INDIRECT prend ensuite cette chaîne concaténée finale et demande à Excel de trouver la table portant ce nom.

Pourquoi les experts détestent ça

Pourquoi je l'utilise toujours

Dans une feuille de calcul volumineuse comportant des milliers de lignes de ces listes déroulantes, le comportement « toujours actif » d'INDIRECT peut rendre Excel un gâchis lent.

INDIRECT est le meilleur moyen de créer des listes déroulantes en cascade de type application sans utiliser VBA. Dans une configuration ciblée comme celle-ci, les performances sont microscopiques.

Logo Excel devant une feuille de calcul vide.

Tout ce que vous devez savoir sur la validation des données dans Microsoft Excel

Définissez des règles pour contrôler les entrées de données dans Excel.

INDIRECT est la meilleure fonction pour assembler un tableau de bord multi-tables

Imaginez que vous ayez des tableaux de ventes distincts pour différentes années : T_2024 (à gauche) et T_2025 (à droite). Vous souhaitez qu'une cellule récapitulative (J2) additionne automatiquement les ventes en fonction de l'année sélectionnée dans un menu déroulant (I2).

Une feuille Excel avec deux tableaux de ventes, un pour 2024 et un pour 2025, ainsi qu'une zone de recherche Année et Total à droite.

Tout d'abord, créez un troisième tableau nommé T_Years et, dans la seule colonne, répertoriez toutes les années que vous souhaitez voir apparaître dans la liste déroulante de la cellule I2.

Une feuille Excel avec deux tableaux de ventes, un tableau contenant 2024 et 2025 et une zone de recherche vide.

Ensuite, vérifiez que les deux tables de données sont nommées de manière cohérente (T_[Year]) et que la colonne à partir de laquelle vous allez extraire les données porte exactement le même libellé (Ventes).

Sélectionnez la cellule I2 et dans l'onglet Données, cliquez sur « Validation des données ».

Une cellule dans Excel intitulée « Année » est sélectionnée et le bouton Validation des données est mis en surbrillance.

Dans le champ Autoriser, choisissez « Liste » et dans le champ Source, insérez des références de cellule directes aux années de votre tableau T_Years en les saisissant manuellement comme références absolues ou en les sélectionnant avec votre souris. Ensuite, cliquez sur « OK ».

La liste est sélectionnée dans la boîte de dialogue Validation des données d'Excel et les références de cellule à un tableau Années sont sélectionnées dans le champ Source.

Même si vous avez utilisé des références de cellules directes, la plage s'étendra automatiquement lorsque vous ajouterez des années à votre tableau T_Years, l'un des nombreux avantages de l'utilisation de tableaux Excel structurés.

Maintenant, dans la cellule J2, entrez la formule suivante :

=SUM(INDIRECT("T_"&I2&"[Sales]"))
La fonction INDIRECT utilisée dans Excel pour référencer un nom de table, avec la fonction SOMME calculant toutes les valeurs de la colonne Ventes.

Cette formule indique à Excel de construire une référence de tableau en utilisant des esperluettes pour combiner le préfixe « T_ », l'année sélectionnée dans la cellule I2 et le nom spécifique. [Sales] colonne. INDIRECT évalue ensuite cette chaîne de texte comme une plage en direct que la fonction SUM peut calculer.

Pourquoi les experts détestent ça

Pourquoi je l'utilise toujours

Cette configuration est fragile car vous construisez une référence basée sur du texte plutôt qu'une sélection directe. Si quelqu'un remplace T_2024 par Table2024 ou ajoute accidentellement un espace de fin à un élément de votre liste d'années, la chaîne de texte ne correspondra à aucun objet connu et la formule sera interrompue.

Malgré sa fragilité, je l’utilise toujours car il rend les tableaux de bord évolutifs. Lorsque 2026 arrivera, je n'aurai pas besoin de réécrire les formules : je créerai simplement une nouvelle table nommée T_2026ajoutez 2026 à ma liste d'années et le tableau de bord se met à jour.

Tableau de bord du projet Excel sur un ordinateur portable.

Votre feuille de calcul Excel a besoin d'un tableau de bord : voici comment en créer un

Ayez vos KPI au même endroit.

INDIRECT n'est pas toujours la meilleure solution : la fenêtre déroulante

Bien qu'INDIRECT soit idéal pour basculer entre des tables distinctes, comme dans les scénarios ci-dessus, il a un point de rupture. Lorsque vous commencez à l’utiliser pour effectuer des calculs approfondis sur un seul ensemble de données en croissance, la taxe sur la volatilité devient un prix trop élevé à payer.

Supposons que vous ayez une table nommée T_Stocks qui s'agrandit quotidiennement. Vous souhaitez calculer le prix moyen des X dernières entrées, où X est un nombre variable que vous saisissez dans la cellule D3.

Un tableau Excel avec les dates dans la colonne A et les prix dans la colonne B, et une zone de recherche adjacente qui sera utilisée pour trouver la moyenne des cinq dernières entrées.

Ici, tu pourrait utilisez INDIRECT pour créer manuellement une chaîne de texte comme T_Stocks[Price] et calculez les décalages de ligne pour trouver votre point de départ. Cependant, pour ce type de calcul, j'utilise l'INDEX non volatile, qui ne recalcule que lorsque les données qu'il examine réellement changent.

Voici la formule de la cellule E3 :

=AVERAGE(INDEX(T_Stocks[Price],ROWS(T_Stocks)-(D3-1)):INDEX(T_Stocks[Price],ROWS(T_Stocks)))

Dans ce cas, les deux points (:) entre les deux fonctions INDEX créent la plage dynamique, il n'est donc pas nécessaire d'INDIRECT. Le premier INDEX compte à rebours à partir du bas du tableau et le second INDEX utilise ROWS pour trouver la toute dernière entrée du tableau.

La fonction MOYENNE utilisée avec INDEX pour trouver la moyenne des cinq dernières entrées dans la colonne Prix d'un tableau.

Ensuite, si vous remplacez 5 dans la cellule D3 par 10, la fenêtre s'agrandit instantanément.

Pourquoi les experts détestent ça

Pourquoi je ne l'utilise pas ici

Utiliser INDIRECT pour les plages mathématiques est le moyen le plus rapide de casser Excel. Parce qu'il est volatile, chaque fois que vous ajoutez une nouvelle ligne, Excel doit reconstruire l'intégralité de la référence de plage à partir d'une chaîne de texte.

Le passage à INDEX offre la même flexibilité dynamique sans pénalité de performances.

Illustration d'un fichier Excel avec une formule et quelques alertes autour.

Pourquoi devriez-vous éviter de coder en dur les valeurs dans les formules Microsoft Excel

Faire référence à des cellules ou à des plages nommées est la voie à suivre.


INDIRECT reste l’une des fonctionnalités d’Excel dont on parle le plus car elle peut être un cauchemar lent et volatile. Mais lorsque vous avez besoin de transformer du texte en une carte fonctionnelle pour des listes déroulantes ou un changement de table, c'est le meilleur outil pour ce travail. Respecter la volatilité est l'un des nombreux moyens essentiels d'accélérer vos feuilles de calcul Excel et de maintenir un classeur réactif.

Système d'exploitation

Windows, macOS, iPhone, iPad, Android

Essai gratuit

1 mois

Microsoft 365 inclut l'accès aux applications Office telles que Word, Excel et PowerPoint sur jusqu'à cinq appareils, 1 To de stockage OneDrive et bien plus encore.




Vous pouvez lire l’article original (en Angais) sur le blogwww.howtogeek.com