Excel en un Cleex

Fonction INDIRECT

La fonction INDIRECT est une fonction Excel permettant de convertir un texte en coordonnées valides. Elle est intéressante dès lors que vous voulez manipuler un texte et qu’Excel l’interprète comme des coordonnées valides.
Utilisation de la fonction INDIRECT sur Excel

Syntaxe

La fonction INDIRECT s’écrit de la façon suivante :

= INDIRECT( réf_texte, [a1] )

Cette fonction possède deux arguments :

  • réf_texte – Il s’agit d’un texte indiquant des coordonnées valides.
  • [a1] – Argument optionnel. Il permet de préciser si les coordonnées sont au format A1 ou au format L1C1. VRAI = Format A1 / FAUX = Format L1C1. Par défaut, le format est de la format A1.

Bien que ça puisse sembler étrange, le seul intérêt de la fonction INDIRECT est de convertir du texte en références de cellules valides. Si je viens saisir dans ma cellule Excel la formule suivante, elle ne fonctionnera pas :

= SI( "A1" = "Texte" ; 1 ; 0 )

La référence de la cellule A1 a été saisie comme du texte. Il faudra alors se servir de la fonction INDIRECT.

= SI( INDIRECT("A1") = "Texte" ; 1 ; 0 )

Comment utiliser la fonction INDIRECT ?

La fonction INDIRECT a besoin de deux arguments pour fonctionner correctement. Le second argument est optionnel. Pour l’utiliser, il suffit de saisir le texte que vous souhaitez qu’Excel interprète comme des coordonnées de cellules valides.

= INDIRECT( texte_à_convertir ; VRAI )
= INDIRECT( "A1" ; VRAI )

= INDIRECT( "L1C1" ; FAUX )

Quand utiliser la fonction INDIRECT ?

Voici quelques exemples fréquents d’utilisation de la fonction INDIRECT.

Utiliser la fonction INDIRECT pour reconstituer des références aux plages de données

La première utilisation possible de la fonction INDIRECT est de s’en servir pour reconstituer des références à des cellules. Par exemple, je m’en suis servi pour créer des listes déroulantes dynamiques. La formule ressemblait à ça :

=INDIRECT(ADRESSE(2;EQUIV(A2;$1:$1;0);1)&":"&ADRESSE(NBVAL(INDIRECT(GAUCHE(ADRESSE(2;EQUIV(A2;$1:$1;0));NBCAR(ADRESSE(2;EQUIV(A2;$1:$1;0)))-2)&":"&GAUCHE(ADRESSE(2;EQUIV(A2;$1:$1;0));NBCAR(ADRESSE(2;EQUIV(A2;$1:$1;0)))-2)));EQUIV(A2;$1:$1;0)))

Dans cette formule je venais reconstituer les coordonnées d’une plage de données en fonction de l’entête de la colonne et du nombre de valeurs non vides. Exemple impressionnant mais il y a plus simple comme première utilisation de la fonction INIDRECT.

Utiliser la fonction INDIRECT pour appeler des onglets différents

On peut s’en servir pour mettre les noms des onglets en tant que variables. Ainsi, vous pouvez mettre le nom de l’onglet dans une cellule et la sélectionner dans votre formule.

=SOMME( INDIRECT( A3 & "!B2:B30" ) )

Dans l’exemple ci-dessus, les formules placées dans l’onglet Synthèse récupèrent les sommes des valeurs dans chaque onglet. En plaçant le nom de l’onglet dans une cellule, de l’appeler dans la formule et de se servir de la fonction INDIRECT permet d’indiquer à Excel des coordonnées valides tout en ayant des formules dynamiques.

Il suffira de changer les entêtes des lignes pour appeler des onglets différents.

Attention, néanmoins à bien orthographier les coordonnées. Il faut qu’il y ait un point d’exclamation (!) entre le nom de l’onglet et les coordonnées des cellules. De plus, pour un onglet contenant des espaces, il faudra indique des apostrophes de chaque côté.

=SOMME( INDIRECT( "'" & A3 & "'!B2:B30" ) )
Ajout des apostrophes si le nom de l'onglet contient des espaces.

Utiliser la fonction INDIRECT pour appeler des documents différents

De la même façon que nous avons mis les noms des onglets, il est possible de mettre les noms des documents en tant que variables. Solution moins efficace à cause des mises à jour des valeurs dans Excel, elle s’avère intéressante dans certaines situations. Elle requiert à ce que le document externe soit ouvert pour fonctionner.

Souvenez-vous que le nom du document doit être écrit entre crochets.

=SOMME( INDIRECT( "[" & A3 & "]Onglet_1'!B2:B30" ) )
Où A3 contient le nom du classeur.

Utiliser la fonction INDIRECT pour figer les références des cellules

Solution plus surprenante mais la fonction INDIRECT peut être utilisée pour figer « dans le marbre » les références des cellules. Imaginez avoir un document dans lequel vous faites appel à des données dont les colonnes sont supprimées régulièrement par vos collègues. Une erreur #REF s’affichera à chaque fois. En indiquant les coordonnées avec la formule INDIRECT, vos coordonnées seront toujours valides.

=SOMME( INDIRECT( "Onglet_1'!B2:B30" ) )
Même si la colonne est supprimée, la référence
reste valide

De façon générale privilégiez toujours la protection des modifications dans votre classeur. Cette solution est intéressante mais moins pratique.

Utiliser la fonction INDIRECT avec des plages nommées

La fonction INDIRECT peut être utilisée pour faire appel à des plages nommées. Il s’agit de plage de cellules auxquelles vous avez donné un nom. Si vous écrivez directement dans votre formule le nom de la plage, il ne sera pas reconnu comme coordonnées valides. Il faudra alors se servir de la fonction INDIRECT.

Caractéristiques de la fonction INDIRECT

  • La fonction INDIRECT est une fonction volatile. Elle exige une puissance de calcul. Utilisez-la avec parcimonie.
  • Elle peut servir pour convertir du texte en coordonnées valides comme : des coordonnées de cellules, des onglets, des documents ou des plages nommées.

Formules en lien

Fonctions en lien

4.8/5 - (29 votes)

Vous avez apprécié cet article ?

Pour me soutenir, cliquez sur cette publicité. Pas besoin d’acheter, un clic suffit.

Merci. 🤩

Annonces

Modèles Excel

+

Livret 

7 méthodes pour gagner 2H par semaine sur Excel

C’est gratuit 🤩

Formation Excel (100% finançable)

Un programme personnalisé, avec un formateur expert attitré et selon vos disponibilités.

Formations Excel

Parce que chacun devrait avoir les moyens de faire son travail sur Excel

Découvrez des formations accessibles, rapides et directement applicables.