Apprendre Excel
FR
Définit l'affichage des nombres, des dates et des formules, pour que tout fonctionne comme dans votre Excel.

Accueil › Fonctions Excel › INDIRECT

Fonction INDIRECT dans Excel, avec exemples

INDIRECT transforme un texte en vraie référence de cellule. =INDIRECT("B3") renvoie ce qu'il y a en B3. Cela devient puissant quand vous construisez le texte avec une formule : choisissez un nom de feuille, un numéro de ligne ou un nom de plage dans une cellule, et la formule suit. Dans l'Excel en anglais, la fonction s'appelle aussi INDIRECT.

Dans ce guide
  1. Syntaxe d'INDIRECT
  2. Exemple simple
  3. Essayez vous-même
  4. Données d'une autre feuille
  5. Liste déroulante dépendante
  6. Inconvénients
  7. Questions fréquentes

Syntaxe d'INDIRECT

=INDIRECT(réf_texte; [a1])
ArgumentSignification
réf_texteUne référence sous forme de texte, comme "B3", "Feuil2!A1" ou une plage nommée.
a1
(facultatif)
VRAI ou omis pour les références A1 normales ; FAUX pour le style L1C1 ("L3C2").

Exemple simple : un numéro de ligne dans une cellule

ABCD
110Ligne3
220
330
440
550
=INDIRECT("A" & D1)

"A" & D1 devient le texte « A3 », et INDIRECT renvoie la valeur de A3 : 30. Mettez 5 en D1 et le résultat devient 50.

La même astuce crée une plage qui grandit avec un nombre :

=SOMME(INDIRECT("A1:A" & D1))

Avec 3 en D1, la formule additionne A1:A3 : 10 + 20 + 30 = 60.

S'exercer avec INDIRECT : essayez vous-même

Lire est une chose, taper la formule en est une autre. Construisez la formule ci-dessous pas à pas : les indications vous disent quoi taper, et vous pouvez cliquer sur les cellules ou faire glisser dessus pour les ajouter, comme dans Excel.

Exercice: Affichez en E2 la valeur de la cellule dont l'adresse est en D2: =INDIRECT(D2)

Récupérer les données d'une feuille dont le nom est dans une cellule

Imaginez une feuille par mois (Janv, Févr, Mars) avec le total en B10. Sur une feuille de synthèse, mettez les noms des feuilles en colonne A et utilisez :

=INDIRECT("'" & A2 & "'!B10")

Recopiez vers le bas : chaque ligne affiche le total de la feuille indiquée en colonne A. Les apostrophes autour du nom de la feuille sont nécessaires quand le nom contient des espaces, comme 'Ventes 2026', et ne gênent pas dans les autres cas.

INDIRECT est la méthode classique pour créer une deuxième liste déroulante qui dépend de la première : choisissez « Fruits » et la liste suivante n'affiche que des fruits.

  1. Mettez chaque liste dans sa propre colonne avec un en-tête : Fruits, Légumes.
  2. Sélectionnez chaque liste (sans l'en-tête) et nommez-la dans la zone Nom, exactement comme l'en-tête : Fruits et Légumes.
  3. En A2, créez une liste déroulante avec la source Fruits;Légumes
  4. En B2, créez une liste déroulante avec la source =INDIRECT(A2)

Les noms de plage ne peuvent pas contenir d'espaces. Pour « Produits laitiers », nommez la plage Produits_laitiers et utilisez =INDIRECT(SUBSTITUE(A2; " "; "_"))

Les inconvénients d'INDIRECT

  • Elle est volatile. INDIRECT se recalcule à chaque modification, ce qui ralentit les gros classeurs.
  • Les références ne se mettent pas à jour. Comme la référence est un texte, elle ne bouge pas quand vous insérez des lignes ou renommez une feuille. Renommer « Janv » en « Janvier » donne #REF!.
  • Elle ne lit pas les classeurs fermés. Une référence à un autre fichier ne fonctionne que si ce fichier est ouvert.

Pour les recherches, INDEX/EQUIV ou RECHERCHEX sont généralement de meilleurs choix. Utilisez INDIRECT quand c'est le nom de la feuille ou de la plage lui-même qui doit changer.

Questions fréquentes

Pourquoi INDIRECT renvoie-t-elle #REF! ?

Le texte n'est pas une référence valide : une faute de frappe dans le nom de la feuille, des apostrophes manquantes autour d'un nom avec espaces, une plage nommée qui n'existe pas ou une référence à un classeur fermé.

Puis-je utiliser INDIRECT avec le nom d'un tableau ?

Oui, par exemple =SOMME(INDIRECT(A2 & "[Montant]")) avec le nom du tableau en A2.

Que fait INDIRECT avec une référence fixe ?

=INDIRECT("A1") pointe toujours vers A1, même si vous insérez des lignes au-dessus. C'est une façon de verrouiller complètement une référence, au-delà de ce que fait $A$1.

Existe-t-il une alternative à INDIRECT qui ne soit pas volatile ?

INDEX n'est pas volatile : =SOMME(A1:INDEX(A:A; D1)) donne la même plage qui grandit que l'exemple avec INDIRECT.