dinámicos

Rango dinámico en Excel: cómo crearlo con DESREF y con tablas

octubre 11, 2026 Tuto Excel 14 min read
Rango dinámico en Excel: cómo crearlo con DESREF y con tablas

Un rango dinámico es un rango de celdas que se ajusta solo cuando añades o quitas datos, sin tener que tocar las fórmulas a mano. En este tutorial vas a montar una hoja de ventas que crece cada semana y verás cómo las fórmulas, las listas desplegables y un BUSCARV (en inglés VLOOKUP) siguen funcionando al añadir filas. El contenido vale para Microsoft 365, Excel 2024, 2021, 2019 y 2016; las tablas de Excel como tales existen desde 2007, y DESREF (OFFSET) y CONTARA (COUNTA) desde hace décadas. Cuando veas un punto y coma entre argumentos, es la configuración con coma decimal; si tu Excel usa punto decimal, el separador será la coma.

Qué es un rango dinámico y por qué tu hoja lo necesita

Imagina una hoja de ventas en la que cada lunes apuntas una fila nueva: la fecha y el importe del día. La primera semana el rango va de la fila 2 a la 6; al mes siguiente ya tienes datos hasta la fila 30. Si en otra celda escribiste =SUMA(B2:B6), esa suma se quedó congelada el día que la tecleaste: la fila 7, la 15 y la 30 no se cuentan. Tienes que abrir la fórmula, mirar dónde acababan los datos y ampliar el rango a mano. Y si además tienes un BUSCARV que busca precios, o una lista desplegable que muestra los productos, el problema se repite: cualquier rango fijo se queda corto.

Un rango dinámico hace ese trabajo por ti. Se "estira" o se "encoge" cuando añades o borras filas, y las fórmulas que lo usan siguen dando el resultado correcto sin que toques nada. En una hoja de ventas esto significa que la suma del mes, la lista de productos y la búsqueda del precio se actualizan solas cada vez que llega una fila nueva. Es la diferencia entre una hoja que se queda obsoleta en una semana y una que sigue funcionando mientras le sumes datos.

Para llegar a eso, Excel ofrece tres caminos, que veremos en la siguiente sección: las tablas oficiales de Excel, la pareja DESREF + CONTARA con un nombre de rango, y las tablas dinámicas para informes más elaborados.

Las tres formas de conseguirlo en Excel

Método Cómo se hace Cuándo conviene Cuidado
Tabla oficial (Insertar > Tablas > Tabla) Marcas el rango como Tabla; las fórmulas con referencia estructurada siguen las filas nuevas. Siempre que puedas: es la forma más limpia, rápida y rápida de mantener. La fila de totales y los filtros automáticos vienen activados por defecto.
DESREF (OFFSET) + CONTARA (COUNTA) + nombre definido Defines un nombre de rango con =DESREF(A2;0;0;CONTARA(A:A)-1;1) y lo usas en las fórmulas. Cuando necesitas el rango como argumento de BUSCARV o de Validación de datos y no puedes usar Tabla. DESREF es volátil: se recalcula con cada cambio del libro.
Tabla dinámica (Insertar > Tablas > Tabla dinámica) Resumen interactivo que se ajusta al cambiar el origen. Cuando quieres agrupar, contar y resumir, no solo "crecer". No sustituye al rango dinámico de una fórmula: es una herramienta de informes.

Tablas oficiales: la forma más sencilla

Convertir el rango en Tabla (con la herramienta Insertar > Tablas > Tabla) es el camino más corto. La Tabla es un objeto de Excel con nombre, con su propia pestaña Herramientas de tabla cuando la seleccionas, y todas las fórmulas que escribas con referencia estructurada —por ejemplo =SUMA(Ventas[tabla!Importe])— apuntan a la columna, no a unas celdas concretas. Cuando añades una fila debajo, la Tabla la absorbe y la fórmula suma la fila nueva sin que la toques. Lo único que pierdes al convertir son formatos personalizados fuera de la Tabla: el estilo de filas a bandas y los filtros automáticos se activan solos.

DESREF y CONTARA: el rango que cuenta filas

La fórmula clásica para un rango que crece es:

=DESREF(A2;0;0;CONTARA(A:A)-1;1)

Despiece:

  • A2 es la celda de arranque, la primera con datos justo debajo de la cabecera.
  • 0;0 son los desplazamientos en filas y columnas: nos quedamos en el mismo sitio.
  • CONTARA(A:A)-1 cuenta cuántas celdas no vacías hay en la columna A y resta 1 para no contar la cabecera.
  • 1 es el ancho, una sola columna.

El resultado es un rango que empieza en A2 y termina en la última celda escrita de la columna A. Envolviendo esa expresión con un nombre (lo vemos en el siguiente apartado) y usando el nombre en las fórmulas, todas las celdas que dependan de él se actualizan solas.

Cuidado: DESREF es una función volátil: obliga a Excel a recalcularse con cualquier cambio del libro. En hojas pequeñas no se nota, pero en libros con miles de fórmulas puede ralentizar la apertura y el guardado. Si notas lentitud, cambia a Tabla oficial.

Nombres de rango con DESREF para listas y BUSCARV

La fórmula anterior se queda en una celda; para que sirva en varias fórmulas a la vez, guárdala como nombre definido. Ve a Fórmulas > Nombres definidos > Definir nombre, dale un nombre descriptivo (por ejemplo datosImporte) y pega la fórmula de DESREF en el campo "Se refiere a". A partir de ahí, cualquier fórmula, validación de datos o tabla dinámica puede usar datosImporte como si fuera un rango con nombre, y se actualizará al añadir filas. Es la forma clásica de tener una lista desplegable o un BUSCARV que no se rompen.

Crear tu primera tabla dinámica de datos

Empezamos con una hoja de ventas semanal. Tienes seis días apuntados y vas a convertir el rango en Tabla para que la suma se actualice sola cuando llegue la fila 8.

Comprueba: que la pestaña de la hoja se llama "Ventas" y que las cabeceras están en la fila 1.
A1fx**Fecha**
A B
1 Fecha Importe
2 01/10/2026 120,00
3 02/10/2026 85,50
4 03/10/2026 200,00
5 04/10/2026 60,00
6 05/10/2026 145,25
7 06/10/2026 90,00
Ventas

Convertir el rango en Tabla

  1. Selecciona el rango A1:B7 con el ratón.
  2. Abre Insertar > Tablas > Tabla.
  3. En el cuadro de diálogo, confirma el rango y marca la casilla "La tabla tiene encabezados".
  4. Pulsa Aceptar. Aparece la pestaña Herramientas de tabla con su cinta propia; la tabla se llama Tabla1 por defecto, pero el nombre se ve en la esquina superior izquierda y se puede cambiar.
InsertarTablasTabla
Comprueba: que la tabla tiene filas a bandas alternas y una flecha de filtro en cada cabecera. La suma de la columna Importe es 700,75.

Una fórmula que suma la columna Importe

Escribes en D1 la fórmula con referencia estructurada y Excel la entiende como "la columna Importe de la tabla, entera".

=SUMA(Ventas[Importe])

Ahora añade una fila más para ver cómo se comporta:

  1. Ve a la celda A8 y escribe 07/10/2026.
  2. En B8 escribe 175,50.
  3. Pulsa Entrar.

La fila 8 se incorpora sola a la tabla (verás que el formato a bandas continúa) y la fórmula de D1 sube a 876,25 sin tocarla.

D1fx=SUMA(Ventas[Importe])
A B C D
1 Fecha Importe 876,25
2 01/10/2026 120,00
3 02/10/2026 85,50
4 03/10/2026 200,00
5 04/10/2026 60,00
6 05/10/2026 145,25
7 06/10/2026 90,00
8 07/10/2026 175,50
Ventas
Comprueba: que al pulsar Entrar en B8 la tabla se extiende a la fila 8 y D1 muestra 876,25.

Crear un nombre con DESREF y CONTARA

Ahora vas a hacer lo mismo pero con un nombre definido, que te servirá después para el BUSCARV.

  1. Abre Fórmulas > Nombres definidos > Definir nombre.
  2. En Nombre escribe datosImporte.
  3. En Se refiere a, escribe la fórmula siguiente (apunta a la columna Importe de la hoja Ventas, sin la cabecera).
  4. Pulsa Aceptar.
  5. En cualquier celda, por ejemplo D2, escribe =SUMA(datosImporte) y comprueba que da el mismo resultado que la fórmula con referencia estructurada.

=DESREF(Ventas!$B$2;0;0;CONTARA(Ventas!$B:$B)-1;1)
Comprueba: que =SUMA(datosImporte) da 876,25 y que si añades una fila 9 con importe 50,00 la suma pasa a 926,25 sin tocar la fórmula.

Listas desplegables y BUSCARV que no se rompen

Tienes en otra hoja, llamada "Productos", la lista de códigos y precios. La idea es que la lista desplegable de otra hoja incluya los productos nuevos automáticamente y que el BUSCARV encuentre el precio del código elegido, aunque la tabla crezca.

Comprueba: que la hoja Productos tiene las cabeceras en A1:B1 y cinco productos en A2:B6.
A1fx**Código**
A B
1 Código Precio
2 P-100 12,50
3 P-200 8,75
4 P-300 24,00
5 P-400 3,20
6 P-500 15,90
Productos

La lista desplegable crece sola

Conviertes primero el rango de productos en Tabla, con el mismo procedimiento del apartado anterior, para que la Validación de datos pueda usar el nombre de la tabla como origen.

  1. En la hoja Productos, selecciona A1:B6 y conviértelo en Tabla (Insertar > Tablas > Tabla, con encabezados).
  2. La tabla se llamará Tabla1 por defecto; si tu hoja ya tiene otra, renómbrala a Productos desde la pestaña Herramientas de tabla > Propiedades > Nombre de la tabla.
  3. Ve a la hoja donde quieras la lista desplegable, por ejemplo una hoja "Pedidos", y selecciona la celda E2.
  4. Abre Datos > Herramientas de datos > Validación de datos.
  5. En Permitir, elige Lista.
  6. En Origen escribe =Productos[Código] (la columna Código de la tabla) y acepta.
DatosHerramientas de datosValidacion de datos
Comprueba: que al pulsar la flecha de E2 ves P-100, P-200, P-300, P-400 y P-500. Añade en Productos la fila 7 con código P-600; al volver a la lista desplegable, P-600 aparece sin tocar la validación.

BUSCARV sobre un nombre dinámico

En la misma hoja Pedidos, en F2 escribes la fórmula que busca el precio del código elegido en E2. Como el rango de búsqueda es una Tabla, la referencia estructurada protege a la fórmula frente a filas nuevas.

=BUSCARV(E2;Productos;2;FALSO)

Detrás de Productos Excel entiende "toda la tabla Productos". El 2 indica que quieres la segunda columna (Precio) y FALSO, que la coincidencia sea exacta.

Ahora añade el código P-600 en Productos, ve a Pedidos y elige P-600 en la lista de E2: la celda F2 muestra el precio nuevo sin que hayas tocado la fórmula.

F2fx=BUSCARV(E2;Productos;2;FALSO)
D E F
1 Código Precio
2 P-300 24,00
Pedidos
Comprueba: que al cambiar E2 a P-600, F2 muestra su precio. Si eliges un código que no existe, F2 muestra #N/A, que es lo que BUSCARV devuelve cuando no hay coincidencia exacta.

Errores típicos al montar un rango dinámico

El rango se queda corto al añadir datos

La fórmula =DESREF(A2;0;0;CONTARA(A:A)-1;1) asume que la cabecera está en A1 y los datos empiezan en A2. Si la columna tiene la cabecera en la fila 1 y los datos en la fila 2, CONTARA(A:A) cuenta también la cabecera: si tienes 6 datos, devuelve 7 y, al restar 1, da 6 (correcto). El error aparece si la cabecera está en otra fila o si la columna tiene celdas en blanco: CONTARA devuelve menos de lo esperado y el rango se queda corto. El arreglo más fiable es usar siempre CONTARA($A:$A)-1 y arrancar DESREF en $A$2 para que la resta de la cabecera cuadre siempre.

#¡REF! al mover o borrar la columna

Si al definir el nombre escribiste =DESREF($A$1;0;0;CONTARA($A:$A);1), el rango empieza en la cabecera y la incluye. Cuando borras la columna A o la mueves a otro sitio, las referencias absolutas se rompen y aparece #¡REF! en todas las celdas que usen ese nombre. Ajusta la fórmula a =DESREF($A$2;0;0;CONTARA($A:$A)-1;1) y comprueba que, al renombrar la hoja, el nombre se actualiza solo. La versión con Tabla oficial no tiene este problema: las referencias estructuradas apuntan al nombre de la tabla, no a la columna.

La hoja se vuelve lenta al cambiar celdas

DESREF es volátil: cualquier edición del libro fuerza un recálculo. En una hoja con cinco o diez fórmulas no pasa nada; con cientos de DESREF anidados en una hoja con 50.000 filas, abrir y guardar el archivo se nota lento. La solución depende del caso: si solo necesitas que la fórmula siga al rango, convierte los datos en Tabla y usa referencia estructurada; si necesitas un argumento de tipo rango para una función que no acepta tablas, recurre a INDIRECTO (INDIRECT) con un nombre de rango, aunque INDIRECTO también es volátil; la versión más rápida es un rango con nombre fijo y un recordatorio de ampliarlo a mano cuando cambien los datos.

Lo que ya sabes hacer con un rango dinámico

  • Convertir un rango de datos en Tabla oficial con Insertar > Tablas > Tabla, y escribir fórmulas con referencia estructurada como =SUMA(Ventas[tabla!Importe]) que sigan las filas nuevas.
  • Crear un nombre de rango con DESREF y CONTARA para usarlo en Validación de datos, en BUSCARV o en cualquier fórmula que necesite un argumento de tipo rango.
  • Montar una lista desplegable basada en una Tabla para que los productos nuevos aparezcan solos al añadirlos a la lista.
  • Escribir un BUSCARV sobre una Tabla para que el precio se encuentre aunque la lista crezca con el tiempo.
  • Detectar cuándo un rango se queda corto por un CONTARA mal calculado, cuándo aparecen #¡REF! por una referencia a la fila de cabecera, y cuándo la hoja se vuelve lenta por funciones volátiles.

El siguiente paso natural es convertir esa misma hoja de ventas en una tabla dinámica (Insertar > Tablas > Tabla dinámica) para agrupar los importes por mes, por producto o por cualquier otro campo, y así pasar del rango dinámico a un informe interactivo que también se ajusta al crecer los datos.

Dudas al montar un rango dinámico en Excel

1. ¿Cómo se hace un rango dinámico en Excel paso a paso?

En una celda escribe =DESREF(A1;0;0;CONTARA(A:A);1) para que el rango crezca solo cuando añadas datos en la columna A. Cópialo dentro de un nombre definido (Fórmulas > Administrador de nombres) y úsalo en gráficos, VALIDACIÓN o BUSCARV. Así no tendrás que ajustar rangos a mano cada vez que sumes filas.

2. ¿Qué diferencia hay entre usar DESREF y una Tabla para crear un rango dinámico?

DESREF es una fórmula volátil que recalcula siempre y arma el rango con CONTARA; sirve en cualquier versión de Excel. Una Tabla (Insertar > Tabla) convierte los datos en un objeto con su propio nombre estructurado, más rápida y limpia, disponible desde Excel 2007. Si tu Excel lo permite, la Tabla es la opción más cómoda.

3. ¿Por qué mi DESREF no se actualiza al añadir más filas?

Casi siempre es porque CONTARA apunta a una columna con celdas en blanco o con fórmulas que devuelven "", que CONTARA cuenta como dato. Solución: usa CONTARA sobre la columna clave de los datos y rellena esa columna sin huecos; con eso, el rango se amplía en cuanto escribes una fila nueva.

4. ¿Cómo crear un rango dinámico con la función DESREF en Excel 2010?

En Excel 2010 ve a Fórmulas > Definir nombre, ponle un nombre (por ejemplo, Datos) y en "Se refiere a" escribe =DESREF(Hoja1!$A$1;0;0;CONTARA(Hoja1!$A:$A);1). Acepta y ya puedes usar "Datos" en cualquier fórmula, gráfico o lista desplegable; se expandirá solo cuando agregues valores en la columna A.

5. ¿Qué es un rango dinámico y para qué sirve en una hoja de cálculo?

Es un rango que cambia de tamaño según los datos que tenga la hoja, sin que tengas que editarlo a mano. Sirve para alimentar gráficos, listas desplegables, VALIDACIÓN de datos o fórmulas como SUMAR.SI.CONJUNTO sin que se corten al sumar filas. En la práctica evita el error típico de "se me ha quedado corto el rango".

6. ¿Se puede usar un rango dinámico dentro de un gráfico en Excel?

Sí, y es uno de los usos más útiles. Crea el nombre definido con DESREF y CONTARA como en los pasos anteriores y, al insertar o editar el gráfico, escribe ese nombre en "Seleccionar datos" como serie y como etiquetas del eje. Cuando agregues datos nuevos a la tabla, el gráfico los recogerá solo.

7. ¿Cuál es la mejor forma de crear un rango dinámico en Excel moderno?

Desde Excel 2021 y Microsoft 365 lo más sencillo es convertir tus datos en una Tabla (Insertar > Tabla o Ctrl+T): el rango pasa a llamarse Tabla1[Columna1] y se ajusta solo. Si aun así prefieres una fórmula, =DESREF(A1;0;0;CONTARA(A:A);1) dentro de un nombre definido sigue funcionando y es compatible con versiones anteriores.

Fuentes

  1. MicrosoftDESREF — documentación oficialconsultado el 05/10/2026
  2. MicrosoftIMPORTARDATOSDINAMICOS — documentación oficialconsultado el 05/10/2026
  3. MicrosoftRANGO.PERCENTIL — documentación oficialconsultado el 05/10/2026
  4. MicrosoftRANGO.PERCENTIL.EXC — documentación oficialconsultado el 05/10/2026
  5. MicrosoftRANGO.PERCENTIL.INC — documentación oficialconsultado el 05/10/2026