🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Función DIRECCION en Excel — Construye la dirección de una celda como texto (no su valor)

|

Función DIRECCION en Excel — Construye la dirección de una celda como texto (no su valor)

En resumenADDRESS toma 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 argumento abs_num controla el bloqueo con $ (1=$A$1, 4=A1); texto_hoja antepone un nombre de hoja. A diferencia de INDIRECT y OFFSET, ADDRESS no 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$1 vs A$1 vs $A1 vs A1
  • Por qué ADDRESS no 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?"MATCH te da la posición (un número); ADDRESS convierte 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, ADDRESS ensambla el texto exacto que INDIRECT necesita, 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"INDEX o XLOOKUP devuelven el valor directamente, sin el rodeo de texto-y-luego-INDIRECT y sin volatilidad.
  • "¿Dónde está este valor?" → a menudo MATCH sola (el número de fila) es todo lo que una fórmula posterior realmente necesita; el $C$5 legible 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 ADDRESS hace 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