En resumen —
OFFSETdevuelve una referencia que empieza en una celda ancla, camina un número dado de filas hacia abajo y columnas hacia la derecha, y opcionalmente puede tomar un bloque de una altura y anchura dadas. Sintaxis:=OFFSET(referencia, filas, columnas, [alto], [ancho]).=OFFSET(A1, 2, 1)es la celda dos filas abajo y una columna a la derecha de A1 (es decir, B3). Como devuelve una referencia, no un valor, puedes envolverla enSUM,AVERAGEoCOUNTy se redimensiona a demanda. Dos advertencias: es volátil (se recalcula ante cada edición), y para simplemente elegir una celda por posición,INDEXno volátil hace el mismo trabajo sin el coste de rendimiento. ReservaOFFSETpara ventanas que de verdad se mueven.
=SUM(OFFSET(A1, 0, 0, COUNTA(A:A), 1)) ' suma la columna A por muy alta que crezca
=SUM(OFFSET(B2, COUNT(B:B)-3, 0, 3, 1)) ' suma los últimos 3 números de la columna B
La mayoría conoce OFFSET como el motor detrás de un "rango dinámico" — un rango
con nombre o un origen de gráfico que se autoexpande al añadir filas. Es bueno en
eso, y en un puñado de problemas de ventana móvil que nada más expresa con tanta
elegancia. Pero también es volátil y fácil de sobreexplotar, y el Excel moderno ha
dejado obsoletas en silencio la mitad de sus viejos casos de uso. Esta guía te da
el modelo mental, las trampas, y una línea clara sobre cuándo cambiar a INDEX.
Lo que vas a aprender
- El modelo mental: empieza en un ancla, muévete, y luego opcionalmente toma un bloque
- Por qué
OFFSETdevuelve una referencia — y por qué eso permite queSUMla envuelva - El coste de la volatilidad, y la trampa del
#REF!al salirse del borde - El clásico rango dinámico con nombre — y por qué una Tabla o un rango de derrame ahora lo superan
- El nicho genuinamente difícil de reemplazar: ventanas móviles y totales acumulados
- La decisión de criterio:
OFFSETfrente aINDEXno volátil
Nota — nombres de funciones en Excel en español. En la interfaz en español, las funciones aparecen así: OFFSET → DESREF, INDEX → INDICE, INDIRECT → INDIRECTO, ADDRESS → DIRECCION, MATCH → COINCIDIR, COUNTA → CONTARA, SUM → SUMA, SUMIFS → SUMAR.SI.CONJUNTO, FILTER → FILTRAR. 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: empieza aquí, camina hasta allí, toma esto
OFFSET tiene cinco argumentos, pero cuentan una sola historia sencilla. Empieza
en el ancla, da filas pasos hacia abajo y columnas pasos hacia la
derecha para caer en una nueva celda, y luego — si le das alto y ancho — se
expande desde esa celda de aterrizaje hasta un bloque de ese tamaño:
=OFFSET(A1, 2, 1) ' cae en B3 (2 abajo, 1 a la derecha), una celda
=OFFSET(A1, 2, 1, 3, 2) ' un bloque de 3 filas × 2 columnas empezando en B3 -> B3:C5
=OFFSET(A1, -1, 0) ' negativo camina HACIA ARRIBA -> fila encima de A1 (aquí, #REF!)
Los números positivos mueven hacia abajo y a la derecha; los negativos, hacia
arriba y a la izquierda. Deja fuera alto y ancho y el resultado tiene el mismo
tamaño que el ancla (normalmente una sola celda). Esa es toda la función — un
puntero móvil que además puede estirarse hasta formar un rectángulo.
Por qué devuelve una referencia, no un valor
Este es el rasgo que hace útil a OFFSET y confunde a los novatos. OFFSET no
devuelve el contenido del bloque — devuelve la referencia al bloque. Por sí
solo en una celda, =OFFSET(A1,2,1,3,2) se derramará o mostrará el valor
superior, pero su verdadero propósito es alimentar a otra función:
=SUM(OFFSET(A1, 0, 0, 12, 1)) ' suma un bloque de 12 filas anclado en A1
=AVERAGE(OFFSET(A1, 0, 0, 12, 1)) ' promedia ese mismo bloque
Como la altura del bloque es un argumento, puedes hacerla una fórmula —
COUNTA(A:A), MATCH(...), una celda en la que el usuario escribe — y el rango se
redimensiona solo. Esa es toda la base de cada "rango dinámico" construido sobre
OFFSET.
El clásico rango dinámico — y su reemplazo moderno
Durante años, la forma estándar de hacer que un gráfico o una lista desplegable
creciera con tus datos era un rango con nombre basado en OFFSET:
' Nombre "DatosVentas" = OFFSET($A$1, 0, 0, COUNTA($A:$A), 1)
' se autoexpande a las filas que tenga actualmente la columna A
Funciona. Pero en cualquier versión actual de Excel es el valor por defecto
equivocado, por dos razones. Primero, OFFSET es volátil — un libro lleno
de estos recalcula ante cada tecla y empieza a sentirse lento. Segundo, Excel ahora
tiene herramientas no volátiles que hacen lo mismo de forma más legible:
- Una Tabla de Excel (
Ctrl+T) crece automáticamente; referénciala comoTabla1[Ventas]y cada gráfico,SUMIFSy lista desplegable apuntado a ella se expande solo — sin fórmula, sin volatilidad. - Un rango de derrame de una fórmula de matriz dinámica usa el operador
#: si=FILTER(...)se derrama desde E2, entoncesE2#es el rango vivo, siempre del tamaño correcto.
El veredicto: si estás recurriendo a un rango dinámico con nombre basado en
OFFSET en 2026, recurre a una Tabla o a una referencia de derrame en su lugar.
Reserva los rangos con OFFSET solo para libros heredados que mantienes, no para
los nuevos.
La trampa: caminar fuera del borde devuelve #REF!
OFFSET falla a gritos cuando lo envías a un sitio que no existe. Muévete por
encima de la fila 1 o a la izquierda de la columna A — o dimensiona un bloque que
se pase de la última fila de la hoja — y obtienes #REF!:
=OFFSET(A1, -1, 0) ' #REF! — no hay fila encima de A1
=OFFSET(A1, 0, 0, 0, 1) ' #REF! — un bloque no puede tener altura cero
La versión sutil muerde en los rangos dinámicos: si COUNTA($A:$A) cuenta un
valor perdido muy abajo en la columna, o cuenta cero en una columna vacía, el
argumento de altura sale mal y todo el rango colapsa o da error. Ancla en el
verdadero inicio de tus datos y asegúrate de que la fórmula de dimensionado no
pueda devolver 0.
El nicho que DESREF conserva: ventanas móviles
Aquí es donde OFFSET todavía se gana su sitio — una ventana que se desliza,
donde tanto el inicio como el tamaño se mueven juntos. Los totales acumulados y las
"últimas N filas" son los casos emblemáticos:
' Suma acumulada de las 3 entradas más recientes de la columna B
=SUM(OFFSET(B2, COUNT(B2:B1000)-3, 0, 3, 1))
' Valor N filas debajo de un encabezado encontrado (un punto de lectura móvil)
=OFFSET($A$1, MATCH("Total", $A:$A, 0)-1, 1)
Ese movimiento de "ancla, salta a una posición que calcula una fórmula, y luego lee
una ventana alrededor de ella" es genuinamente incómodo de expresar de cualquier
otra forma. Incluso aquí, un total acumulado basado en fechas suele quedar más
limpio como SUMIFS con una condición
">="&corte — pero para una ventana posicional, por conteo de filas, OFFSET
sigue siendo la herramienta más ajustada.
La decisión de criterio: DESREF frente a INDICE
La única regla que arreglará la mayor parte del sobreuso de OFFSET: si estás
usando OFFSET para indexar en un rango — "dame la celda en esta posición" —
cambia a INDEX. INDEX también devuelve una referencia, hace la misma elección
posicional, y no es volátil:
=OFFSET($A$1, n, 0) ' forma volátil de obtener la (n+1)-ésima celda de la columna A
=INDEX($A:$A, n+1) ' la misma celda, no volátil, y Excel puede rastrearla
- Elegir una celda/fila/columna por posición →
INDEX. No volátil, rastreable, se lee con más claridad. Esto cubre la gran mayoría de para lo que la gente usaOFFSET. - Hacer crecer un rango al añadir datos → una Tabla o una referencia de
derrame
#. - Una ventana que de verdad se mueve (total acumulado, últimas N filas, lectura
alrededor de una coincidencia) →
OFFSETsigue siendo la elección correcta, usada deliberadamente y en pocas cantidades.
La opinión fuerte: OFFSET es un especialista, no un básico. Cada OFFSET
volátil que reemplaces con INDEX, una Tabla o un rango de derrame hace el libro
más rápido y más fácil de rastrear para la siguiente persona — y no pierdes nada
salvo el retardo del recálculo.
Cómo ayuda ExcelMaster
Las fórmulas con OFFSET son donde las hojas de cálculo se vuelven lentas e
ilegibles — COUNTA anidados, alturas con error de uno, y volatilidad que nadie
nota hasta que el archivo se arrastra. ExcelMaster lee el objetivo — un
gráfico que crece con los datos, un total acumulado de 3 meses, el valor junto
a la fila que dice "Total" — y lo escribe a la manera moderna: una Tabla o rango
de derrame cuando solo necesitas crecimiento, INDEX cuando indexas por posición,
y un OFFSET ajustado solo cuando una ventana móvil realmente lo pide. Consigues
el comportamiento dinámico sin heredar una fórmula volátil que hay que cuidar.
Preguntas frecuentes
¿Qué hace la función DESREF en Excel?
Devuelve una referencia situada a un número dado de filas y columnas desde un
ancla de partida, opcionalmente redimensionada a un bloque: =OFFSET(A1, 2, 1) es
la celda dos filas abajo y una columna a la derecha de A1. Como devuelve una
referencia, normalmente la envuelves en SUM, AVERAGE o COUNT.
¿Por qué se considera volátil a DESREF?
Excel no puede predecir a qué celdas apuntará OFFSET hasta que calcula, así que
lo reevalúa en cada recálculo, no solo cuando cambian sus entradas. Unas pocas
son inofensivas; miles ralentizan el libro de forma notable. Esa es la razón
principal para preferir INDEX o una Tabla donde puedas.
DESREF frente a INDICE — ¿cuál debería usar?
Para elegir una celda por posición, usa INDEX — devuelve una referencia igual
que OFFSET pero es no volátil y rastreable. Reserva OFFSET para ventanas
que de verdad se mueven (totales acumulados, "últimas N filas") donde el inicio y
el tamaño se desplazan juntos.
¿Cómo hago un rango dinámico con DESREF?
El patrón clásico es =OFFSET($A$1, 0, 0, COUNTA($A:$A), 1) en un rango con
nombre, que crece a medida que se rellena la columna A. En el Excel moderno,
prefiere una Tabla de Excel o una referencia de derrame (A2#) en su
lugar — ambas se autoexpanden sin volatilidad.
¿Por qué mi DESREF devuelve #REF!?
Te has salido del borde de la hoja (filas negativas por encima de la fila 1, más
allá de la última columna) o le has dado a un bloque una altura o anchura de 0. En
rangos dinámicos, esto normalmente significa que la fórmula de altura (como
COUNTA) devolvió 0 o un conteo inesperado. Revisa el ancla y los argumentos de
dimensionado.
Probado en
Probado en: Excel 365 (Windows 11) — última verificación el 2026-07-01.
Guías relacionadas: Excel INDIRECTO · Excel DIRECCION · Excel SUMAR.SI.CONJUNTO · Excel FILTRAR · Excel BUSCARX
