En resumen —
ADDRESStoma un número de fila y un número de columna y devuelve el texto de la dirección de esa celda. Sintaxis:=ADDRESS(fila, columna, [abs_num], [a1], [texto_hoja]).=ADDRESS(1, 1)devuelve la cadena"$A$1"— no el contenido de A1. Es un constructor de etiquetas, no un buscador de valores. El argumentoabs_numcontrola el bloqueo con$(1=$A$1,4=A1);texto_hojaantepone un nombre de hoja. A diferencia deINDIRECTyOFFSET,ADDRESSno es volátil — es pura aritmética de texto. Para leer de verdad la celda que nombra, envuélvela:=INDIRECT(ADDRESS(...)).
=ADDRESS(3, 2) ' -> "$B$3" (texto, no el valor de B3)
=ADDRESS(3, 2, 4) ' -> "B3" (relativa, sin bloqueos $)
=ADDRESS(MATCH(x, A:A, 0), 1) ' -> la dirección de donde está x en la columna A
ADDRESS es la rara de la familia de construcción de referencias. INDIRECT
convierte texto en una referencia; OFFSET se mueve hacia una referencia;
ADDRESS va en el sentido contrario — produce el texto de una dirección a
partir de simples números de fila y columna. Eso la hace de nicho, y la gente que
espera que devuelva un valor la malinterpreta rutinariamente. Esta guía aclara
eso, muestra el argumento de bloqueo con $ que nadie recuerda, y es honesta sobre
el puñado de trabajos donde de verdad se gana un sitio.
Lo que vas a aprender
- El modelo mental: números que entran, una cadena de dirección que sale (lo inverso de una lectura)
- El malentendido nº1: devuelve texto, no el valor de la celda
- El argumento
abs_num— controlar$A$1vsA$1vs$A1vsA1 - Por qué
ADDRESSno es volátil (y por qué es un contraste agradable) - Los trabajos reales: informar dónde está un valor, y alimentar a
INDIRECT - La decisión de criterio honesta: cuándo casi nunca necesitas
ADDRESS
Nota — nombres de funciones en Excel en español. En la interfaz en español, las funciones aparecen así: ADDRESS → DIRECCION, INDIRECT → INDIRECTO, OFFSET → DESREF, INDEX → INDICE, MATCH → COINCIDIR, XLOOKUP → BUSCARX, SUBSTITUTE → SUSTITUIR. Además, el error
#REF!se muestra en Excel en español como #¡REF!. En los bloques de código mantenemos los nombres en inglés para que puedas copiar y pegar tal cual.
El modelo mental: números de fila y columna que entran, una etiqueta que sale
Cada función hasta ahora ha leído una celda. ADDRESS hace algo más estrecho y
más mecánico: le das un número de fila y un número de columna, y ensambla
el texto que describe esa posición:
=ADDRESS(1, 1) ' -> "$A$1"
=ADDRESS(10, 3) ' -> "$C$10"
=ADDRESS(5, 27) ' -> "$AA$5" (columna 27 = AA — maneja las letras por ti)
Lo único genuinamente útil que te ahorra es esa conversión de número de columna a
letra: saber que la columna 27 es AA o que la 53 es BA es tedioso de hacer a
mano, y ADDRESS simplemente lo hace. Más allá de eso, piénsala como un
generador de cadenas que habla la gramática de direcciones de Excel — nada más.
El malentendido que hace tropezar a todos
Lee esto una vez y nunca perderás una tarde por ello: ADDRESS devuelve texto,
no un valor. =ADDRESS(1,1) te da los seis caracteres "$A$1", lo mismo que si
los hubieras escrito en una celda. No mira dentro de A1:
=ADDRESS(1, 1) ' -> "$A$1" (una cadena)
=INDIRECT(ADDRESS(1, 1)) ' -> el contenido real de A1
Para convertir la dirección que construye ADDRESS en aquello a lo que apunta,
tienes que entregársela a INDIRECT, que es la
función que convierte texto en una referencia viva. Ese emparejamiento —
INDIRECT(ADDRESS(...)) — es la razón más común de que ADDRESS aparezca en una
fórmula. Si te pillas esperando que ADDRESS traiga datos, lo que quieres es otra
función.
El argumento abs_num: qué partes quedan bloqueadas
El tercer argumento, abs_num, decide cuántos signos $ caen en la cadena — el
mismo bloqueo absoluto/relativo que obtienes al pulsar F4 sobre una referencia:
=ADDRESS(3, 2, 1) ' -> "$B$3" (1 = totalmente absoluta — el valor por defecto)
=ADDRESS(3, 2, 2) ' -> "B$3" (2 = fila bloqueada, columna relativa)
=ADDRESS(3, 2, 3) ' -> "$B3" (3 = columna bloqueada, fila relativa)
=ADDRESS(3, 2, 4) ' -> "B3" (4 = totalmente relativa)
Dos argumentos opcionales más rematan la cadena: a1 (por defecto TRUE para
estilo A1; FALSE da R1C1 como "R3C2"), y texto_hoja, que antepone un nombre
de hoja — =ADDRESS(3, 2, 1, TRUE, "Hoja2") devuelve "Hoja2!$B$3". Esa forma
calificada con la hoja es exactamente el tipo de cadena que luego alimentarías a
INDIRECT.
Por qué DIRECCION NO es volátil (y por qué importa)
Aquí está el contraste limpio que amarra a toda la familia de construcción de
referencias. INDIRECT y OFFSET son volátiles — se recalculan ante cada
edición porque Excel no puede predecir a qué resolverán. ADDRESS no es volátil
en absoluto. Nunca toca una referencia viva; solo hace aritmética con números y
devuelve caracteres. =ADDRESS(5, 3) es "$C$5" y siempre lo será, sin importar
qué haya en el libro.
La conclusión práctica: ADDRESS por sí sola es gratis — puedes usar tantas como
quieras sin coste de rendimiento. La volatilidad solo entra cuando la envuelves en
INDIRECT para leer la celda. Así que si solo necesitas la etiqueta — un informe
que diga "el máximo está en la celda $C$5" — ADDRESS sola se mantiene barata y
estática.
Los trabajos reales en los que DIRECCION es buena
Dos patrones la justifican, más un honesto "y con eso ya está":
' 1) Informar DONDE está un valor, no solo cuál es (combina con MATCH)
=ADDRESS(MATCH(MAX(B:B), B:B, 0), 2) ' -> dirección del mayor valor de B
' 2) Construir una cadena de referencia calificada con hoja para entregar a INDIRECT
=INDIRECT(ADDRESS(fila, col, 1, TRUE, NombreHoja))
- "¿Qué celda contiene esto?" —
MATCHte da la posición (un número);ADDRESSconvierte esa posición en una dirección legible por humanos. Útil en hojas de auditoría y control de calidad que necesitan señalar a una persona una ubicación: "mayor desviación: celda $C$5." - Cadenas de referencia dinámicas para
INDIRECT— cuando ya estás calculando números de fila y columna,ADDRESSensambla el texto exacto queINDIRECTnecesita, incluidos el bloqueo con$y el nombre de hoja.
La decisión de criterio: probablemente no necesitas DIRECCION
La opinión honesta: ADDRESS es la más prescindible de las tres. En el Excel
moderno, las preguntas para las que la gente recurre a ella suelen tener respuestas
más limpias:
- "Dame el valor en esta posición" →
INDEXoXLOOKUPdevuelven el valor directamente, sin el rodeo de texto-y-luego-INDIRECTy sin volatilidad. - "¿Dónde está este valor?" → a menudo
MATCHsola (el número de fila) es todo lo que una fórmula posterior realmente necesita; el$C$5legible por humanos solo vale la pena construirlo cuando una persona tiene que leerlo. - "Convertir un número de columna en una letra" → esto es lo único pequeño que
ADDRESShace de forma única, normalmente con=SUBSTITUTE(ADDRESS(1, col, 4), "1", "")para quitar la fila.
Así que usa ADDRESS cuando necesites específicamente una dirección como
texto — para un informe que lee un humano, o como la mitad de cadena de una
referencia con INDIRECT. Para todo lo demás, INDEX/XLOOKUP/MATCH te llevan
allí sin el desvío por una cadena. Saber esto te evita construir una frágil torre
INDIRECT(ADDRESS(...)) donde un solo INDEX bastaría.
Cómo ayuda ExcelMaster
ADDRESS aparece en fórmulas que suelen ser una capa demasiado listas — una pila
INDIRECT(ADDRESS(MATCH(...))) donde un INDEX o XLOOKUP leería directamente.
ExcelMaster reconoce la intención — encontrar el valor, informar en qué
celda está, leer de una posición calculada — y escribe la versión directa:
XLOOKUP/INDEX cuando quieres el valor, ADDRESS con MATCH solo cuando
realmente necesitas la dirección como etiqueta. Terminas con la fórmula más corta y
no volátil que la siguiente persona sí puede leer.
Preguntas frecuentes
¿Qué devuelve la función DIRECCION en Excel?
El texto de una dirección de celda construida a partir de un número de fila y
un número de columna. =ADDRESS(1,1) devuelve la cadena "$A$1" — no el valor de
A1. Para leer la celda que nombra, envuélvela en INDIRECT:
=INDIRECT(ADDRESS(1,1)).
¿Cómo obtengo el valor de una dirección a partir de DIRECCION?
ADDRESS solo construye el texto; INDIRECT convierte ese texto en una referencia
viva. Combínalas: =INDIRECT(ADDRESS(fila, col)). En el Excel moderno, sin
embargo, INDEX(rango, fila, col) normalmente obtiene el valor directamente, sin
rodeo y sin volatilidad.
¿Qué hace el argumento abs_num?
Controla el bloqueo con $ en la cadena devuelta: 1 = $A$1 (absoluta, por
defecto), 2 = A$1 (fila bloqueada), 3 = $A1 (columna bloqueada), 4 = A1
(relativa). Refleja lo que hace pulsar F4 sobre una referencia.
¿Es DIRECCION volátil como INDIRECTO y DESREF?
No. ADDRESS no es volátil — solo hace aritmética con números y devuelve
texto, así que nunca desencadena recálculos extra. La volatilidad solo aparece
cuando la envuelves en INDIRECT para leer de verdad la celda.
¿Cómo encuentro la dirección de celda de un valor?
Combina ADDRESS con MATCH: =ADDRESS(MATCH(valor, A:A, 0), 1) devuelve la
dirección de valor en la columna A. Si una fórmula posterior solo necesita la
posición (no una dirección legible por humanos), MATCH por sí sola es suficiente.
Probado en
Probado en: Excel 365 (Windows 11) — última verificación el 2026-07-01.
Guías relacionadas: Excel INDIRECTO · Excel DESREF · Excel BUSCARX · Excel FILTRAR · Excel SUMAR.SI.CONJUNTO
