En bref —
ADDRESSprend un numéro de ligne et un numéro de colonne et renvoie le texte de l'adresse de cette cellule. Syntaxe :=ADDRESS(no_lig, no_col, [no_abs], [a1], [feuille_texte]).=ADDRESS(1, 1)renvoie la chaîne"$A$1"— pas le contenu de A1. C'est un constructeur d'étiquettes, pas un récupérateur de valeurs. L'argumentno_abscontrôle le verrouillage par$(1=$A$1,4=A1) ;feuille_textepréfixe un nom de feuille. Contrairement àINDIRECTet àOFFSET,ADDRESSn'est pas volatile — c'est de la pure arithmétique de texte. Pour lire réellement la cellule qu'elle nomme, enveloppez-la :=INDIRECT(ADDRESS(...)).
=ADDRESS(3, 2) ' -> "$B$3" (texte, pas la valeur de B3)
=ADDRESS(3, 2, 4) ' -> "B3" (relatif, sans verrous $)
=ADDRESS(MATCH(x, A:A, 0), 1) ' -> l'adresse de l'endroit où x se trouve dans la colonne A
ADDRESS est l'intruse de la famille des constructeurs de références. INDIRECT
transforme du texte en référence ; OFFSET se déplace vers une référence ;
ADDRESS va dans l'autre sens — elle produit le texte d'une adresse à partir
de simples numéros de ligne et de colonne. Cela la rend de niche, et elle est
régulièrement mal comprise par les gens qui s'attendent à ce qu'elle renvoie une
valeur. Ce guide clarifie tout cela, montre l'argument de verrouillage par $ que
personne ne retient, et est honnête sur la poignée de tâches où elle gagne
réellement sa place.
Ce que vous allez apprendre
- Le modèle mental : des numéros en entrée, une chaîne d'adresse en sortie (l'inverse d'une lecture)
- Le malentendu n°1 : elle renvoie du texte, pas la valeur de la cellule
- L'argument
no_abs— contrôler$A$1vsA$1vs$A1vsA1 - Pourquoi
ADDRESSn'est pas volatile (et pourquoi c'est un contraste agréable) - Les vrais rôles : signaler où se trouve une valeur, et alimenter
INDIRECT - Le choix de jugement honnête : quand vous n'avez presque jamais besoin d'
ADDRESS
Remarque — Dans Excel en français, ces fonctions s'affichent sous des noms traduits : ADDRESS → ADRESSE, INDIRECT → INDIRECT, OFFSET → DECALER, INDEX → INDEX, MATCH → EQUIV, XLOOKUP → RECHERCHEX. (
SUBSTITUTEs'affiche SUBSTITUE.) Dans les blocs de code ci-dessous, les noms anglais sont conservés tels quels ; utilisez l'équivalent français dans votre version localisée d'Excel. Les codes d'erreur comme#REF!restent identiques en français.
Le modèle mental : des numéros de ligne et de colonne en entrée, une étiquette en sortie
Chaque fonction vue jusqu'ici lisait une cellule. ADDRESS fait quelque chose de
plus étroit et de plus mécanique : vous lui donnez un numéro de ligne et un
numéro de colonne, et elle assemble le texte qui décrit cette position :
=ADDRESS(1, 1) ' -> "$A$1"
=ADDRESS(10, 3) ' -> "$C$10"
=ADDRESS(5, 27) ' -> "$AA$5" (colonne 27 = AA — elle gère les lettres pour vous)
La seule chose réellement utile qu'elle vous épargne est cette conversion du
numéro de colonne en lettre : savoir que la colonne 27 est AA ou que la colonne
53 est BA est fastidieux à faire à la main, et ADDRESS le fait tout simplement.
Au-delà de ça, voyez-la comme un générateur de chaînes qui parle la grammaire des
adresses d'Excel — rien de plus.
Le malentendu qui fait trébucher tout le monde
Lisez ceci une fois et vous ne perdrez jamais un après-midi dessus : ADDRESS
renvoie du texte, pas une valeur. =ADDRESS(1,1) vous donne les six caractères
"$A$1", comme si vous les aviez tapés dans une cellule. Elle ne regarde pas
à l'intérieur de A1 :
=ADDRESS(1, 1) ' -> "$A$1" (une chaîne)
=INDIRECT(ADDRESS(1, 1)) ' -> le contenu réel de A1
Pour transformer l'adresse qu'ADDRESS construit en la chose qu'elle désigne, vous
devez la passer à INDIRECT, la fonction qui
transforme du texte en référence vivante. Ce couplage — INDIRECT(ADDRESS(...)) —
est la raison la plus courante pour laquelle ADDRESS apparaît dans une formule.
Si vous vous surprenez à attendre d'ADDRESS qu'elle récupère des données, c'est
une autre fonction que vous cherchez.
L'argument no_abs : quelles parties sont verrouillées
Le troisième argument, no_abs, décide combien de signes $ atterrissent dans la
chaîne — le même verrouillage absolu/relatif que vous obtenez en appuyant sur F4
sur une référence :
=ADDRESS(3, 2, 1) ' -> "$B$3" (1 = entièrement absolu — la valeur par défaut)
=ADDRESS(3, 2, 2) ' -> "B$3" (2 = ligne verrouillée, colonne relative)
=ADDRESS(3, 2, 3) ' -> "$B3" (3 = colonne verrouillée, ligne relative)
=ADDRESS(3, 2, 4) ' -> "B3" (4 = entièrement relatif)
Deux autres arguments optionnels achèvent la chaîne : a1 (par défaut TRUE pour
le style A1 ; FALSE donne du L1C1 comme "L3C2"), et feuille_texte, qui
préfixe un nom de feuille — =ADDRESS(3, 2, 1, TRUE, "Feuil2") renvoie
"Feuil2!$B$3". Cette forme qualifiée par la feuille est exactement le genre de
chaîne que vous passeriez ensuite à INDIRECT.
Pourquoi ADDRESS n'est PAS volatile (et pourquoi ça compte)
Voici le contraste net qui relie la famille des constructeurs de références.
INDIRECT et OFFSET sont volatiles — elles se recalculent à chaque
modification parce qu'Excel ne peut pas prédire vers quoi elles se résoudront.
ADDRESS n'est pas du tout volatile. Elle ne touche jamais à une référence
vivante ; elle fait simplement de l'arithmétique sur des numéros et renvoie des
caractères. =ADDRESS(5, 3) vaut "$C$5" et le vaudra toujours, quel que soit le
contenu du classeur.
L'enseignement pratique : ADDRESS seule est gratuite — vous pouvez en utiliser
autant que vous voulez sans coût de performance. La volatilité n'entre en jeu que
lorsque vous l'enveloppez dans INDIRECT pour lire la cellule. Donc si vous
n'avez besoin que de l'étiquette — un rapport qui dit « le maximum est dans la
cellule $C$5 » — ADDRESS seule reste économique et statique.
Les vrais rôles pour lesquels ADDRESS est bonne
Deux motifs la justifient, plus un honnête « et c'est à peu près tout » :
' 1) Signaler OÙ est une valeur, pas seulement ce qu'elle est (associer à MATCH)
=ADDRESS(MATCH(MAX(B:B), B:B, 0), 2) ' -> adresse de la plus grande valeur de B
' 2) Construire une chaîne de référence qualifiée par la feuille à passer à INDIRECT
=INDIRECT(ADDRESS(ligne, col, 1, TRUE, NomFeuille))
- « Quelle cellule contient ceci ? » —
MATCHvous donne la position (un numéro) ;ADDRESStransforme cette position en une adresse lisible par un humain. Utile dans les feuilles d'audit et de contrôle qualité qui doivent orienter une personne vers un emplacement : « plus grand écart : cellule $C$5. » - Chaînes de référence dynamiques pour
INDIRECT— quand vous calculez déjà des numéros de ligne et de colonne,ADDRESSassemble le texte exact dontINDIRECTa besoin, y compris le verrouillage par$et le nom de feuille.
Le choix de jugement : vous n'avez probablement pas besoin d'ADDRESS
L'avis honnête : ADDRESS est la plus dispensable des trois. Dans Excel
moderne, les questions pour lesquelles les gens y recourent ont généralement des
réponses plus propres :
- « Donne-moi la valeur à cette position » →
INDEXouXLOOKUPrenvoient la valeur directement, sans l'aller-retour texte-puis-INDIRECTet sans volatilité. - « Où est cette valeur ? » → souvent
MATCHseule (le numéro de ligne) est tout ce dont une formule en aval a réellement besoin ; le$C$5lisible par un humain ne vaut la peine d'être construit que lorsqu'une personne doit le lire. - « Convertir un numéro de colonne en lettre » → c'est la seule petite chose
qu'
ADDRESSfait de façon unique, généralement via=SUBSTITUTE(ADDRESS(1, col, 4), "1", "")pour retirer la ligne.
Utilisez donc ADDRESS quand vous avez spécifiquement besoin d'une adresse sous
forme de texte — pour un rapport qu'un humain lit, ou comme la moitié « chaîne »
d'une référence INDIRECT. Pour tout le reste, INDEX/XLOOKUP/MATCH vous y
mènent sans le détour par une chaîne. Le savoir vous évite de construire une tour
fragile INDIRECT(ADDRESS(...)) là où un simple INDEX suffirait.
Comment ExcelMaster vous aide
ADDRESS apparaît dans des formules qui sont généralement une couche trop
astucieuses — une pile INDIRECT(ADDRESS(MATCH(...))) là où un INDEX ou un
XLOOKUP lirait directement. ExcelMaster reconnaît l'intention — trouver la
valeur, signaler dans quelle cellule elle est, lire depuis une position
calculée — et écrit la version directe : XLOOKUP/INDEX quand vous voulez la
valeur, ADDRESS avec MATCH uniquement quand vous avez réellement besoin de
l'adresse comme étiquette. Vous vous retrouvez avec la formule plus courte et non
volatile que la personne suivante peut réellement lire.
Foire aux questions
Que renvoie la fonction ADDRESS dans Excel ?
Le texte d'une adresse de cellule construite à partir d'un numéro de ligne et
d'un numéro de colonne. =ADDRESS(1,1) renvoie la chaîne "$A$1" — pas la valeur
de A1. Pour lire la cellule qu'elle nomme, enveloppez-la dans INDIRECT :
=INDIRECT(ADDRESS(1,1)).
Comment obtenir la valeur à une adresse depuis ADDRESS ?
ADDRESS ne construit que le texte ; INDIRECT transforme ce texte en une
référence vivante. Combinez-les : =INDIRECT(ADDRESS(ligne, col)). Sur Excel
moderne cependant, INDEX(plage, ligne, col) obtient généralement la valeur
directement, sans aller-retour et sans volatilité.
Que fait l'argument no_abs ?
Il contrôle le verrouillage par $ dans la chaîne renvoyée : 1 = $A$1
(absolu, par défaut), 2 = A$1 (ligne verrouillée), 3 = $A1 (colonne
verrouillée), 4 = A1 (relatif). Il reproduit ce qu'un appui sur F4 fait à
une référence.
ADDRESS est-elle volatile comme INDIRECT et OFFSET ?
Non. ADDRESS n'est pas volatile — elle ne fait que de l'arithmétique sur des
numéros et renvoie du texte, donc elle ne déclenche jamais de recalcul
supplémentaire. La volatilité n'apparaît que lorsque vous l'enveloppez dans
INDIRECT pour lire réellement la cellule.
Comment trouver l'adresse de cellule d'une valeur ?
Associez ADDRESS à MATCH : =ADDRESS(MATCH(valeur, A:A, 0), 1) renvoie
l'adresse de valeur dans la colonne A. Si une formule en aval n'a besoin que de
la position (pas d'une adresse lisible par un humain), MATCH seule suffit.
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 2026-07-01.
Guides associés : Excel INDIRECT · Excel OFFSET · Excel XLOOKUP · Excel FILTER · Excel SUMIFS
