Fonction INDIRECT d'Excel - utilisations de base et exemples de formules

  • Partage Ça
Michael Brown

Ce tutoriel Excel INDIRECT explique la syntaxe de la fonction, ses utilisations de base et fournit un certain nombre d'exemples de formules qui montrent comment utiliser INDIRECT dans Excel.

Il existe un grand nombre de fonctions dans Microsoft Excel, certaines étant faciles à comprendre, d'autres nécessitant une longue courbe d'apprentissage, et les premières étant plus souvent utilisées que les secondes. Pourtant, la fonction Excel INDIRECT est l'une d'entre elles. Cette fonction Excel n'effectue aucun calcul, ni n'évalue aucune condition ou test logique.

Alors, qu'est-ce que la fonction INDIRECT dans Excel et à quoi sert-elle ? C'est une très bonne question et j'espère que vous obtiendrez une réponse complète dans quelques minutes lorsque vous aurez terminé la lecture de ce tutoriel.

    Fonction INDIRECT d'Excel - syntaxe et utilisations de base

    Comme son nom l'indique, la fonction INDIRECT d'Excel est utilisée pour référencer indirectement des cellules, des plages, d'autres feuilles ou des classeurs. En d'autres termes, la fonction INDIRECT vous permet de créer une référence de cellule ou de plage dynamique au lieu de les coder en dur. Par conséquent, vous pouvez modifier une référence dans une formule sans modifier la formule elle-même. En outre, ces références indirectes ne changeront pas lorsque de nouvelles lignes ou colonnes seront ajoutées.sont insérés dans la feuille de calcul ou lorsque vous supprimez ceux qui existent déjà.

    Tout cela peut être plus facile à comprendre à partir d'un exemple. Cependant, pour pouvoir écrire une formule, même la plus simple, vous devez connaître les arguments de la fonction, n'est-ce pas ? Donc, regardons d'abord rapidement la syntaxe INDIRECT d'Excel.

    Syntaxe de la fonction INDIRECT

    La fonction INDIRECT d'Excel renvoie une référence de cellule à partir d'une chaîne de texte. Elle possède deux arguments, le premier est obligatoire et le second est facultatif :

    INDIRECT(ref_text, [a1])

    réf_texte - est une référence de cellule, ou une référence à une cellule sous la forme d'une chaîne de texte, ou une plage nommée.

    a1 - est une valeur logique qui spécifie quel type de référence est contenu dans l'argument ref_text :

    • Si VRAI ou omis, ref_text est interprété comme une référence de cellule de style A1.
    • Si FALSE, ref_text est traité comme une référence R1C1.

    Bien que le type de référence R1C1 puisse être utile dans certaines situations, vous voudrez probablement utiliser les références A1 familières la plupart du temps. De toute façon, presque toutes les formules INDIRECTes de ce tutoriel utiliseront des références A1, nous omettrons donc le deuxième argument.

    Utilisation de base de la fonction INDIRECT

    Pour mieux comprendre la fonction, écrivons une formule simple qui montre comment utiliser INDIRECT dans Excel.

    Supposons que vous ayez le numéro 3 dans la cellule A1, et du texte A1 dans la cellule C1. Maintenant, mettez la formule =INDIRECT(C1) dans n'importe quelle autre cellule et voir ce qui se passe :

    • La fonction INDIRECT fait référence à la valeur de la cellule C1, qui est A1.
    • La fonction est acheminée vers la cellule A1 où elle choisit la valeur à retourner, qui est le numéro 3.

    Donc, ce que la fonction INDIRECT fait réellement dans cet exemple est conversion d'une chaîne de texte en référence de cellule .

    Si vous pensez que cela n'a encore que très peu de sens pratique, je vais vous montrer d'autres formules qui révèlent la véritable puissance de la fonction INDIRECT d'Excel.

    Comment utiliser INDIRECT dans Excel - exemples de formules

    Comme le montre l'exemple ci-dessus, vous pouvez utiliser la fonction INDIRECT d'Excel pour placer l'adresse d'une cellule dans une autre sous la forme d'une chaîne de texte habituelle et obtenir la valeur de la première cellule en faisant référence à la deuxième.

    Lorsque vous travaillez avec des données réelles, la fonction INDIRECT peut transformer n'importe quelle chaîne de texte en référence, y compris des chaînes très complexes que vous construisez à l'aide des valeurs d'autres cellules et des résultats renvoyés par d'autres formules Excel. Mais ne mettons pas la charrue avant les bœufs et passons en revue plusieurs formules Excel Indirectes, une par une.

    Création de références indirectes à partir de valeurs de cellules

    Comme vous vous en souvenez, la fonction INDIRECT d'Excel permet d'utiliser les styles de référence A1 et R1C1. En général, vous ne pouvez pas utiliser les deux styles dans une seule feuille à la fois, vous ne pouvez passer d'un type de référence à l'autre qu'à l'aide des fonctions suivantes Fichier> ; Options> ; Formules > ; Boîte à cocher R1C1 C'est la raison pour laquelle les utilisateurs d'Excel envisagent rarement d'utiliser R1C1 comme méthode de référencement alternative.

    Dans une formule INDIRECT, vous pouvez utiliser l'un ou l'autre type de référence sur la même feuille si vous le souhaitez. Avant d'aller plus loin, vous voudrez peut-être connaître la différence entre les styles de référence A1 et R1C1.

    Style A1 est le type de référence habituel dans Excel qui fait référence à une colonne suivie d'un numéro de ligne. Par exemple, B2 fait référence à la cellule située à l'intersection de la colonne B et de la ligne 2.

    Style R1C1 est le type de référence opposé - des lignes suivies de colonnes, ce qui demande un certain temps pour s'y habituer : ) Par exemple, R4C1 fait référence à la cellule A4 qui se trouve dans la ligne 4, colonne 1 d'une feuille. Si aucun chiffre ne suit la lettre, vous faites référence à la même ligne ou colonne.

    Et maintenant, voyons comment la fonction INDIRECT gère les références A1 et R1C1 :

    Comme vous le voyez dans la capture d'écran ci-dessus, trois formules indirectes différentes renvoient le même résultat. Avez-vous déjà compris pourquoi ? Je parie que oui : )

    • Formule dans la cellule D1 : =INDIRECT(C1)

    La formule se réfère à la cellule C1, récupère sa valeur - une chaîne de texte. A2 Elle le convertit en référence de cellule, se rend dans la cellule A2 et renvoie sa valeur, qui est 222.

    • Formule dans la cellule D3 : =INDIRECT(C3,FALSE)

    FALSE dans le 2e argument indique que la valeur référencée (C3) doit être traitée comme une référence de cellule R1C1, c'est-à-dire un numéro de ligne suivi d'un numéro de colonne. Par conséquent, notre formule INDIRECT interprète la valeur de la cellule C3 (R2C1) comme une référence à la cellule située à la conjonction de la ligne 2 et de la colonne 1, c'est-à-dire la cellule A2.

    Création de références indirectes à partir de valeurs de cellules et de texte

    De la même manière que nous avons créé des références à partir de valeurs de cellules, vous pouvez combiner une référence de type chaîne de texte et un référence de la cellule dans votre formule INDIRECT, liée à l'opérateur de concaténation (& ;).

    Dans l'exemple suivant, la formule : =INDIRECT("B"&C2) renvoie une valeur de la cellule B2 sur la base de la chaîne logique suivante :

    La fonction INDIRECT concatène les éléments de l'argument ref_text - texte B et la valeur de la cellule C2 -> ; la valeur de la cellule C2 est le nombre 2, ce qui fait référence à la cellule B2 -> ; la formule va dans la cellule B2 et renvoie sa valeur, qui est le nombre 10.

    Utilisation de la fonction INDIRECT avec des plages nommées

    En plus de faire des références à partir de valeurs de cellules et de texte, vous pouvez utiliser la fonction INDIRECT d'Excel pour faire des références à Les gammes nommées .

    Supposons que vous ayez les plages nommées suivantes dans votre feuille :

    • Pommes - B2:B6
    • Bananes - C2:C6
    • Citrons - D2:D6

    Pour créer une référence dynamique Excel à l'une des plages nommées ci-dessus, il suffit d'entrer son nom dans une cellule, par exemple G1, et de faire référence à cette cellule à partir d'une formule indirecte. =INDIRECT(G1) .

    Et maintenant, vous pouvez aller plus loin et intégrer cette formule INDIRECT dans d'autres fonctions Excel pour calculer la somme et la moyenne des valeurs dans une plage nommée donnée, ou trouver la valeur maximale / minimale dans la plage :

    • =SOMME(INDIRECT(G1))
    • =MOYENNE(INDIRECT(G1))
    • =MAX(INDIRECT(G1))
    • =MIN(INDIRECT(G1))

    Maintenant que vous avez une idée générale de la façon d'utiliser la fonction INDIRECT dans Excel, nous pouvons expérimenter des formules plus puissantes.

    Formule INDIRECT pour se référer dynamiquement à une autre feuille de calcul

    L'utilité de la fonction INDIRECT d'Excel ne se limite pas à la création de références de cellules "dynamiques". Vous pouvez également l'utiliser pour faire référence à des cellules d'autres feuilles de calcul "à la volée", et voici comment.

    Supposons que vous ayez des données importantes dans la feuille 1 et que vous souhaitiez les extraire dans la feuille 2. La capture d'écran suivante montre comment une formule Excel indirecte peut gérer cette tâche :

    Décomposons la formule que vous voyez dans la capture d'écran et comprenons.

    Comme vous le savez, la façon habituelle de faire référence à une autre feuille dans Excel est d'écrire le nom de la feuille suivi d'un point d'exclamation et d'une référence de cellule/plage, comme suit Nom de la feuille!Plage Comme le nom d'une feuille contient souvent un ou plusieurs espaces, il est préférable de l'entourer (le nom, pas l'espace : ) de guillemets simples pour éviter une erreur, comme par exemple Ma feuille!$A$1 .

    Il ne vous reste plus qu'à saisir le nom de la feuille dans une cellule, l'adresse de la cellule dans une autre, à les concaténer dans une chaîne de texte et à transmettre cette chaîne à la fonction INDIRECT. N'oubliez pas que dans une chaîne de texte, vous devez placer entre guillemets chaque élément autre qu'une adresse ou un numéro de cellule et relier tous les éléments entre eux à l'aide de l'opérateur de concaténation (& ;).

    Compte tenu de ce qui précède, nous obtenons le schéma suivant :

    INDIRECT("'" & ; Nom de la feuille & ; "' !" & ; Cellule dont on peut extraire des données )

    Pour revenir à notre exemple, vous placez le nom de la feuille dans la cellule A1 et vous tapez les adresses des cellules dans la colonne B, comme le montre la capture d'écran ci-dessus :

    INDIRECT("'" & ; $A$1 & ; "' !" & ; B1)

    En outre, veuillez noter que si vous copiez la formule dans plusieurs cellules, vous devez verrouiller la référence au nom de la feuille en utilisant les références de cellule absolues comme $A$1.

    Notes

    • Si l'une des cellules contenant le nom et l'adresse de la cellule de la deuxième feuille (A1 et B1 dans la formule ci-dessus) est vide, votre formule Indirect renverra une erreur. Pour éviter cela, vous pouvez envelopper la fonction INDIRECT dans la fonction IF :

      IF(OR($A$1="",B1=""), "", INDIRECT("'" & ; $A$1 & ; "' !" & ; B1))

    • Pour que la formule INDIRECT qui fait référence à une autre feuille fonctionne correctement, la feuille visée doit être ouverte, sinon la formule renverra une erreur #REF. Pour éviter cette erreur, vous pouvez utiliser la fonction IFERROR, qui affichera une chaîne vide, quelle que soit l'erreur :

      IFERROR(INDIRECT("" & ; $A$1 & ; "' !" &B1), "")

    Création d'une référence dynamique Excel à un autre classeur

    La formule indirecte qui fait référence à un autre classeur Excel est basée sur la même approche que la référence à une autre feuille de calcul. Il suffit de spécifier le nom du classeur en plus du nom de la feuille et de l'adresse de la cellule.

    Pour faciliter les choses, commençons par faire une référence à un autre livre de la manière habituelle (les apostrophes sont ajoutées au cas où vos noms de livres et/ou de feuilles contiennent des espaces) :

    '[Book_name.xlsx]Sheet_name'!Range

    En supposant que le nom du livre se trouve dans la cellule A2, le nom de la feuille dans B2 et l'adresse de la cellule dans C2, nous obtenons la formule suivante :

    =INDIRECT("'[" & ; $A$2 & ; "]" & ; $B$2 & ; "' !" & ; C2)

    Comme vous ne voulez pas que les cellules contenant les noms du livre et de la feuille changent lorsque vous copiez la formule dans d'autres cellules, vous les verrouillez en utilisant des références de cellule absolues, $A$2 et $B$2, respectivement.

    Maintenant, vous pouvez facilement écrire votre propre référence dynamique à un autre classeur Excel en utilisant le modèle suivant :

    =INDIRECT("'[" & ; Nom du livre & ; "]" & ; Nom de la feuille & ; "' !" & ; Adresse cellulaire )

    Remarque : le classeur auquel votre formule fait référence doit toujours être ouvert, sinon la fonction INDIRECT génère une erreur #REF. Comme d'habitude, la fonction IFERROR peut vous aider à l'éviter :

    =IFERROR(INDIRECT("[" & ; A2 & ; "]" & ; $A$1 & ; "' !" & ; B1), "")

    Utilisation de la fonction INDIRECT d'Excel pour verrouiller une référence de cellule

    Normalement, Microsoft Excel modifie les références des cellules lorsque vous insérez de nouvelles lignes ou colonnes dans une feuille ou que vous en supprimez. Pour éviter que cela ne se produise, vous pouvez utiliser la fonction INDIRECT pour travailler avec des références de cellules qui doivent rester intactes dans tous les cas.

    Pour illustrer la différence, veuillez faire ce qui suit :

    1. Entrez n'importe quelle valeur dans n'importe quelle cellule, par exemple le nombre 20 dans la cellule A1.
    2. Faites référence à A1 à partir de deux autres cellules de différentes manières : =A1 et =INDIRECT("A1")
    3. Insérez une nouvelle ligne au-dessus de la ligne 1.

    Vous voyez ce qui se passe ? La cellule avec le égal à La cellule contenant la formule INDIRECT renvoie maintenant 0, car la formule n'a pas été modifiée lors de l'insertion d'une nouvelle ligne et fait toujours référence à la cellule A1, qui est actuellement vide :

    Après cette démonstration, vous avez peut-être l'impression que la fonction INDIRECT est plus une nuisance qu'une aide. Bon, essayons d'une autre manière.

    Supposons que vous souhaitiez additionner les valeurs des cellules A2:A5. Vous pouvez facilement le faire en utilisant la fonction SUM :

    =SUM(A2:A5)

    Cependant, vous voulez que la formule reste inchangée, quel que soit le nombre de lignes supprimées ou insérées. La solution la plus évidente - l'utilisation de références absolues - ne vous aidera pas. Pour vous en assurer, entrez la formule suivante =SOMME($A$2:$A$5) dans une cellule, insérez une nouvelle ligne, disons à la ligne 3, et... trouvez la formule convertie en =SOMME($A$2:$A$6) .

    Bien sûr, cette courtoisie de Microsoft Excel fonctionnera parfaitement dans la plupart des cas. Néanmoins, il peut y avoir des scénarios où vous ne voulez pas que la formule soit modifiée automatiquement. La solution est d'utiliser la fonction INDIRECT, comme ceci :

    =SOMME(INDIRECT("A2:A5"))

    Étant donné qu'Excel perçoit "A1:A5" comme une simple chaîne de texte plutôt que comme une référence de plage, il n'apportera aucune modification lorsque vous insérez ou supprimez une ou plusieurs lignes.

    Utilisation de INDIRECT avec d'autres fonctions Excel

    Outre la fonction SUM, INDIRECT est fréquemment utilisé avec d'autres fonctions Excel telles que ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF, pour n'en citer que quelques-unes.

    Exemple 1 : fonctions INDIRECT et ROW

    Par exemple, vous pouvez utiliser la formule de tableau suivante (n'oubliez pas qu'il faut appuyer sur les touches Ctrl + Shift + Entrée) pour obtenir la moyenne des trois plus petits nombres de la plage A1:A10 :

    =MOYENNE(SMALL(A1:A10,ROW(1:3)))

    Cependant, si vous insérez une nouvelle ligne dans votre feuille de calcul, n'importe où entre les lignes 1 et 3, la plage de la fonction ROW sera modifiée en ROW(1:4) et la formule renverra la moyenne des 4 plus petits nombres au lieu de 3.

    Pour éviter que cela ne se produise, mettez INDIRECT dans la fonction ROW et votre formule de tableau restera toujours correcte, quel que soit le nombre de lignes insérées ou supprimées :

    =MOYENNE(SMALL(A1:A10,ROW(INDIRECT("1:3"))))

    Voici quelques autres exemples d'utilisation de INDIRECT et ROW en conjonction avec la fonction LARGE : Comment additionner les N plus grands nombres d'une plage.

    Exemple 2 : fonctions INDIRECT et ADDRESS

    Vous pouvez utiliser la fonction INDIRECT d'Excel avec la fonction ADDRESS pour obtenir à la volée une valeur dans une certaine cellule.

    Comme vous vous en souvenez peut-être, la fonction ADRESSE est utilisée dans Excel pour obtenir l'adresse d'une cellule par les numéros de ligne et de colonne. Par exemple, la formule =ADDRESS(1,3) renvoie la chaîne $C$1 puisque C1 est la cellule à l'intersection de la 1ère ligne et de la 3ème colonne.

    Pour créer une référence indirecte à une cellule, il suffit d'intégrer la fonction ADRESSE dans une formule INDIRECT comme ceci :

    =INDIRECT(ADRESSE(1,3))

    Bien entendu, cette formule triviale ne fait que démontrer la technique. Et voici quelques exemples qui peuvent s'avérer vraiment utiles :

    • Formule ADRESSE INDIRECTE - comment changer de ligne et de colonne.
    • VLOOKUP et INDIRECT - comment extraire dynamiquement des données de différentes feuilles.
    • INDIRECT avec INDEX / MATCH - comment amener à la perfection une formule VLOOKUP sensible à la casse.
    • Excel INDIRECT et COUNTIF - comment utiliser la fonction COUNTIF sur une plage non contiguë ou une sélection de cellules.

    Utilisation de l'INDIRECT avec la validation des données dans Excel

    Vous pouvez utiliser la fonction Excel INDIRECT avec la validation des données pour créer des listes déroulantes en cascade qui affichent des choix différents en fonction de la valeur sélectionnée par l'utilisateur dans la première liste déroulante.

    Une simple liste déroulante dépendante est très facile à réaliser. Il suffit de quelques plages nommées pour stocker les éléments de la liste déroulante et d'une simple fonction =INDIRECT(A2) où A2 est la cellule affichant votre première liste déroulante.

    Pour créer des menus à 3 niveaux ou des listes déroulantes plus complexes avec des entrées de plusieurs mots, vous aurez besoin d'une formule INDIRECT un peu plus complexe avec une fonction SUBSTITUTE imbriquée.

    Pour obtenir des conseils détaillés, étape par étape, sur la manière d'utiliser INDIRECT avec la validation des données Excel, veuillez consulter ce tutoriel : Comment créer une liste déroulante dépendante dans Excel.

    Fonction INDIRECT d'Excel - erreurs et problèmes éventuels

    Comme le montrent les exemples ci-dessus, la fonction INDIRECT est très utile pour traiter les références de cellules et de plages. Cependant, tous les utilisateurs d'Excel ne l'adoptent pas avec enthousiasme, notamment parce que l'utilisation intensive de la fonction INDIRECT dans les formules Excel entraîne un manque de transparence. La fonction INDIRECT est difficile à contrôler car la cellule à laquelle elle fait référence n'est pas l'emplacement final de la valeur utilisée dans la formule,ce qui est assez déroutant, surtout lorsqu'on travaille avec de grandes formules complexes.

    En plus de ce qui précède, comme toute autre fonction Excel, INDIRECT peut produire une erreur si vous utilisez mal les arguments de la fonction. Voici une liste des erreurs les plus courantes :

    Erreur Excel INDIRECT #REF !

    Le plus souvent, la fonction INDIRECT renvoie une erreur #REF ! dans trois cas :

    1. ref_text n'est pas une référence de cellule valide Si le paramètre ref_text de votre formule Indirect n'est pas une référence de cellule valide, la formule produira la valeur d'erreur #REF ! Pour éviter tout problème, vérifiez les arguments de la fonction INDIRECT.
    2. La limite de la gamme est dépassée Si l'argument ref_text de votre formule indirecte fait référence à une plage de cellules dépassant la limite de ligne de 1 048 576 ou la limite de colonne de 16 384, vous obtiendrez également l'erreur #REF dans Excel 2007, 2010 et Excel 2013. Les versions antérieures d'Excel ignorent la limite dépassée et renvoient une valeur, mais souvent pas celle que vous attendez.
    3. La feuille ou le classeur visé est fermé. Si votre formule Indirect fait référence à un autre classeur ou feuille de calcul Excel, cet autre classeur/feuille de calcul doit être ouvert, sinon INDIRECT renvoie l'erreur #REF !

    Erreur Excel INDIRECT #NAME ?

    C'est le cas le plus évident, ce qui implique qu'il y a une erreur dans le nom de la fonction, ce qui nous amène au point suivant : ).

    Utilisation de la fonction INDIRECT dans les langues non anglaises

    Vous serez peut-être curieux d'apprendre que le nom anglais de la fonction INDIRECT a été traduit en 14 langues, notamment :

    • Danois - INDIREKTE
    • Finnois - EPÄSUORA
    • Allemand - INDIREKT
    • Hongrois - INDIREKT
    • Italien - INDIRETTO
    • Norvégien - INDIREKTE
    • Polonais - ADR.POŚR
    • Espagnol - INDIRECTO
    • Suédois - INDIREKT
    • Turc - DOLAYLI

    Si vous souhaitez obtenir la liste complète, veuillez consulter cette page.

    Un problème courant avec les localisations non anglaises n'est pas le nom de la fonction INDIRECT, mais plutôt les différentes Paramètres régionaux pour le Séparateur de listes Dans la configuration standard de Windows pour l'Amérique du Nord et certains autres pays, l'adresse par défaut est la suivante Séparateur de listes est une virgule. Tandis que dans les pays européens, la virgule est réservée comme la Symbole décimal et le Séparateur de listes est défini comme un point-virgule.

    Par conséquent, lors de la copie d'une formule entre deux langues différentes d'Excel, vous pouvez obtenir le message d'erreur " Nous avons trouvé un problème avec cette formule... " car le Séparateur de listes Si vous rencontrez cette erreur en copiant une formule INDIRECT de ce tutoriel dans votre Excel, remplacez simplement toutes les virgules (,) par des points-virgules ( ;) pour la corriger.

    Pour vérifier quel séparateur de liste et quel symbole décimal sont définis sur votre machine, ouvrez l'application Panneau de contrôle et aller à Région et langue> ; Paramètres supplémentaires .

    Nous espérons que ce tutoriel vous a permis de mieux comprendre l'utilisation de la fonction INDIRECT dans Excel. Maintenant que vous connaissez ses forces et ses limites, il est temps de l'essayer et de voir comment la fonction INDIRECT peut simplifier vos tâches dans Excel. Merci de votre lecture !

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.