Bien comprendre comment utiliser la fonction INDIRECT

La Fonction INDIRECT est une fonction si intéressante et qui demande plus d’attention lors de son utilisation. Elle permet de chercher le contenu de la ou des cellules spécifiées par leurs références.

Pour vous aider à bien comprendre comment l’utiliser, mettez en pratique ces exemples où je ferai de mon mieux pour vous simplifier leurs explications.
 Comment utiliser la fonction INDIRECT

La syntaxe de la fonction INDIRECT

Sa syntaxe est la suivante : INDIRECT(réf_texte ;[a1])
La fonction INDIRECT contient donc deux arguments :
  1. réf_texte : obligatoire, il doit être une référence à une cellule ou à une plage de cellule, cette référence pourra être de type A1, L1C1 ou nom de cellule ou de plage de cellules. Et pour que la fonction INDIRECT renvoie le contenu de la cellule (des cellules) référencée (es), vous devez mettre sa référence entre guillemets.
  2. [a1] : cet argument est facultatif, il représente le type de référence défini dans Excel. Généralement c’est le type A1 (Colonnes numérotées en lettres et lignes en chiffres) dans ce cas vous n’êtes pas obligé de mentionner sa valeur VRAI, mais ; si le type de référencement est L1C1, vous devez alors saisir la valeur FAUX pour cet argument.

Comment utiliser la fonction INDIRECT ?

  • En référençant une cellule

Exemple 1 – INDIRECT renvoie un résultat statique

Dans l’illustration suivante, vous voyez que la cellule A2 contient le texte « J’apprends bien ! ».

Cellule à remplir avec INDIRECT


Supposons que vous aimeriez que ce texte soit affiché dans la cellule D4 en utilisant la fonction INDIRECT. Vous allez donc taper dans D4 cette formule :
=INDIRECT("A2")

Et lorsque vous tapez Entrée, vous obtiendrez donc votre résultat attendu.

Indirect renvoie résultat statique


Vous venez donc de respecter la règle de la syntaxe de la fonction INDIRECT, en mettant la référence A2 dont vous souhaitez afficher son contenu, entre guillemets.

Or, si vous saisissez la formule suivante : =INDIRECT(A2), Excel vous renvoie une erreur #REF !

Problème de référence avec INDIRECT


  • Pourquoi ?
Voyons ensemble comment Excel exécute cette formule pour déterminer la cause de ce problème :
  • La fonction INDIRECT lit l’argument A2 et comprend que vous ne l’avez pas mentionné comme référence puisque vous avez omis les guillemets, alors elle constate que vous lui demandez d’aller chercher la référence cible dans le contenu de la cellule A2.
    • La cellule A2 contient : J’apprends bien !, INDIRECT va donc remplacer A2 par son contenu ce qui donne : =INDIRECT(" J’apprends bien ! ")
      • Dans la dernière étape, INDIRECT évalue la chaîne de texte « J’apprends bien ! », il n’est ni référence de type A1 ni un nom de cellule, elle détecte donc que ce n’est pas une bonne référence.

C’est pour cette raison qu’elle renvoie erreur de référence #REF ! (Vous trouvez plus de détails sur cette erreur et d’autres ici: Les erreurs dans Excel

J’espère que c’est clair !

Exemple 2 – INDIRECT renvoie un résultat dynamique

Remplissage cellule dynamique avec INDIRECT


Dans cet exemple, remarquez que j’ai saisi trois valeurs différentes :
  • B2 contient le texte : Facture
  • B3 contient la date :15/07/2019
  • B4 que j’ai nommée Montant, contient le montant : 750.00 €


Dans la cellule E7, vous allez utiliser la fonction INDIRECT pour demander à Excel d’afficher l’une de ces valeurs et ceci en prenant en considération la référence que vous allez préciser dans la cellule H3.
  • Ecrivez donc dans H3 : B2
    • Dans la cellule E7 saisissez =INDIRECT(H3)
Et voici comment va se dérouler l’exécution de cette formule :
    • =INDIRECT(H3)
      • =INDIRECT("B2") : INDIRECT utilise le contenu de la cellule H3 qui est B2 et le met entre guillemets " "
        • E7 affiche enfin Facture
Déroulement de INDIRECT

  • Modifiez B2 par B3
En respectant les mêmes étapes d’exécution :
    • INDIRECT renvoie 43661
    • Mettez alors la cellule E7 au format Date pour faire afficher la date correctement
Exemple de l utilisation de INDIRECT

  • Cette fois écrivez dans H3: Montant, qui est le nom de la cellule B4 

INDIRECT sera exécutée en passant par ces étapes:
  • =INDIRECT(H3)
    • =INDIRECT("Montant")
      • INDIRECT renvoie le contenu de la cellule Montant : 750, que vous pouvez lui appliquer ensuite le format monétaire.
utilisation de INDIRECT dynamique


En référençant une plage de cellules

– Utilisation statique

Exemple 3

Dans l’exemple ci-dessous, vous avez une liste des fruits, et un tableau de données composé de quatre colonnes : Fruits, Qte(quantité), Prix Unit (unitaire) et Total

Remplissage automatique de colonne avec INDIRECT


Au lieu de reprendre la saisie des noms des fruits ; contenus dans la plage de cellules A6:A10 ; dans la colonne Fruits et précisément dans la plage de cellules E6:E10, vous aller vous servir de la fonction INDIRECT pour vous faciliter la tâche.
Et puisque vous avez 5 valeurs à afficher et à fin d’obtenir un meilleur résultat, vous êtes appelé à utiliser INDIRECT dans une formule matricielle.
  • Sélectionnez tout d’abord la plage E6:E10.
  • Allez dans la barre de formule et écrivez =INDIRECT("A6 :A10") puis validez en combinant Ctrl+Maj+Entrée
  • Remarquez que la référence de la plage de cellules est mise entre guillemets elle aussi.
INDIRECT dans une formule matricielle


Exemple 4

Reprenons le même exemple dernier, mais cette fois, et au lieu d’utiliser cette référence A6:A10 dans INDIRECT, vous allez la remplacer par un nom défini pour elle.
  • Sélectionnez A6:A10 et nommez-la Fruits.
  • Sélectionnez la plage de cellules E6:E10 puis dans la barre de formule saisissez =INDIRECT("Fruits") et validez enfin par Ctrl+Maj+Entrée
utilisation de INDIRECT avec nom de plage de cellules


– Utilisation dynamique

Exemple 5

Supposons dans cet exemple que vous avez deux colonnes comme sources de données : Fruits et Légumes, et que vous avez une liste déroulante dans l’entête de la première colonne de votre tableau de données.

Indirect et liste déroulante


Vous désirez par exemple que lorsque vous sélectionnez entre Fruits ou Légumes, Excel vous affichera les éléments de la source de données correspondant à votre sélection.
  • Définissez en premier le nom Fruits pour la plage de cellules A6:A10 et Légumes pour la plage B6 :B10.
  • Sélectionnez la cellule F5 et créez ensuite une liste déroulante en utilisant l’outil Validation des données et qui comportera les deux noms juste créés :Fruits et Légumes.
  • Sélectionnez maintenant la plage de cellules F6:F10 et dans la barre de formule tapez : =INDIRECT(F5) puis validez par Ctrl+Maj+Entrée.
  • Choisissez entre Fruits ou Légumes à chaque fois.
Indirect liée à une liste déroulante



L’exécution de INDIRECT dans cet exemple suit le même principe expliqué dans l’exemple 2 vu en haut :
  • Quand vous sélectionnez Légumes par exemple, voici ce qui se produit :
    • L’argument réf_texte reçoit Légumes que contient la cellule F5 et est mis entre guillemets : =INDIRECT("Légumes")
    • en exécutant la formule matricielle intégrant INDIRECT, elle cherche les 5 noms de légumes dans la plage de cellules Légumes et les place successivement dans les cellules de la plage F6 :F10


Exemple 6

L’avantage de la fonction INDIRECT parait clairement lorsqu’on l’intègre dans d’autres fonctions :Somme, RECHERCHEV, MIN,MAX ou lorsqu’on veut créer des listes déroulantes dépendantes par exemple.
Je vous invite à suivre ce lien Comment créer des listes déroulantes dépendantes, pour découvrir comment on s’est servi de la fonction INDIRECT pour remplir une liste déroulante dépendant d’une autre.

 Comment créer des listes déroulantes dépendantes


En reprenant cet exemple, la formule utilisée est  =INDIRECT($D$12) et une fois validée, l’argument $D$12 sera remplacé par le nom de la plage de cellules contenu dans cette cellule, puis la liste 2 accueillera les valeurs de cette plage.

PARTAGEZ
    Blogger Comment
    Facebook Comment

10 commentaires:

  1. bonjour
    merci pour tout ces éclaircissement, toutefois je trouve toujours des difficultés a réaliser cet exercice, toujours un message d'erreur " source est reconnu comme erronée " je demande votre assistance

    RépondreSupprimer
    Réponses
    1. bonjour, montrez moi un exemple de la formule utilisée et qui déclenche ce message.

      Supprimer
  2. Bonjour, c'est quoi la différence du coup entre faire indirect("une cellule") et '' égal à ''

    Autrement dit, pour l'exemple 1 par exemple, on pouvait bien faire tout simplement dans la cellule D4 : =A2.

    Merci

    RépondreSupprimer
    Réponses
    1. Bonsoir,

      Ici et comme c'est expliqué dans le cours, le but est de vous montrer comment bien utiliser les paramètres de la fonction INDIRECT, c'est une introduction pour ce qui va suivre dans le reste cours et qui va vous donner plus d'éclaircissement sur le rôle de cette fonction.

      Supprimer
  3. Très Claire cette explication

    RépondreSupprimer
  4. Bonjour,
    pour l'exemple 4, ça ne fonctionne que si la formule se situe dans une cellule sur la même ligne que la plage nommée.
    Si je tape =INDIRECT("Fruits") en F12:F16 par exemple, il me revoit #VALEUR!
    Pourquoi et comment y remédier?

    RépondreSupprimer
    Réponses
    1. Bonjour,
      La formule fonctionne correctement. Vérifiez si vous validiez par Ctrl+SHift+Entrée ou si le nom de la plage des cellules est le même utilisé dans la formule.

      Supprimer
  5. Bonjour, J'apprécie le contenu et la présentation. Formidable

    RépondreSupprimer

Votre commentaire m'intéresse beaucoup :)