Volver al Blog
Rendimiento
Excel
Funciones Volátiles
SUMAR.SI.CONJUNTO
Cálculo

Por Qué Tu Libro Tarda 45 Segundos en Recalcular: Funciones Volátiles, Fórmulas de Columna Entera y los 44 Millones de Celdas Que Nadie Pidió

25/08/2026
Por Qué Tu Libro Tarda 45 Segundos en Recalcular: Funciones Volátiles, Fórmulas de Columna Entera y los 44 Millones de Celdas Que Nadie Pidió

Resumen Rápido

Puntos clave de este artículo

  • ⏱️ Mide antes de tocar nada — Ctrl+Alt+F9 fuerza un recálculo completo de todas las fórmulas de todos los libros abiertos, que es la única cifra honesta; F9 a secas solo recalcula las celdas sucias y hará que un archivo roto parezca correcto
  • ☢️ Nueve funciones son volátiles — AHORA, HOY, ALEATORIO, ALEATORIO.ENTRE, MATRIZALEAT, DESREF, INDIRECTO, INFO y CELDA en su forma con referencia — y la volatilidad se contagia: un solo HOY() que leen 400 fórmulas hace que las 400 se recalculen con cada edición en cualquier punto del libro
  • 🧮 =SUMAPRODUCTO((B:B="Norte")*F:F) lee 3.145.728 celdas para responder a una pregunta sobre 8.400 filas, y catorce de ellas suman 44.040.192 lecturas frente a las 352.800 que contienen datos — 124,8 veces el trabajo, pagado en cada tecla
  • ⚡ SUMAR.SI.CONJUNTO y SUMAPRODUCTO devuelven los mismos 20.778,50 con estos datos, pero SUMAR.SI.CONJUNTO corre por la vía optimizada y multihilo de Excel mientras SUMAPRODUCTO construye y multiplica matrices elemento a elemento — reserva SUMAPRODUCTO para ponderar, no para filtrar
  • 🔎 Un BUSCARV de coincidencia exacta recorre 8.400 filas una a una; con datos ordenados la forma aproximada busca en binario en 14 comparaciones, y =SI(BUSCARV(clave;tabla;1;VERDADERO)=clave; BUSCARV(clave;tabla;2;VERDADERO); "No encontrado") mantiene la seguridad de la coincidencia exacta a esa velocidad
  • 🧹 Que Ctrl+Fin caiga en XFD1048576 significa que el rango usado es fantasma — borrar las filas y columnas vacías como filas y columnas, y guardar, llevó un libro real de 41 MB a 2,3 MB y un recálculo de 44,6 segundos a 0,4
Tiempo de lectura: ~20 min

El archivo se llama Pedidos_Master_v7.xlsx. Tiene 8.400 filas y seis columnas — 50.400 celdas de datos, que no es nada. No tiene macros, ni modelo de datos de Power Pivot, ni consultas de un millón de filas. Es una lista de pedidos y un bloque de fórmulas de resumen.

Escribe "Norte" en una celda, pulsa Intro, y la barra de estado marca Calculando (8 procesadores): 12% durante los siguientes cuarenta y cinco segundos.

Todo el mundo tiene una teoría. El archivo está corrupto. La unidad de red va lenta. Excel está hinchado. Hace falta más RAM. Ninguna es cierta, y puedes demostrarlo en diez minutos, porque los libros lentos casi nunca son un misterio — son aritmética. Catorce fórmulas de resumen de este archivo están escritas contra columnas enteras, lo que significa que cada una lee 3.145.728 celdas para responder a una pregunta sobre 8.400 filas. Otras doscientas veinte están construidas sobre DESREF, que es volátil, lo que significa que todas ellas se recalculan cada vez que cambia cualquier cosa en cualquier parte del libro.

Haz la multiplicación: 44.040.192 lecturas de celda en cada pulsación de tecla, frente a las 352.800 que realmente contienen algo.

Este artículo trata de encontrar esa aritmética en tu propio archivo y sacarla de ahí. El mismo libro, tras cuatro cambios y sin perder una sola cifra, recalculaba en 0,4 segundos.

Qué necesitas. SUMAR.SI.CONJUNTO, CONTAR.SI.CONJUNTO, INDICE, COINCIDIR y BUSCARV funcionan en cualquier versión. Las tablas y las referencias estructuradas necesitan Excel 2007 o posterior. LET, FILTRAR, UNICOS y BUSCARX necesitan Microsoft 365 o Excel 2021. Los atajos de cálculo y el cuadro de Administrar reglas llevan ahí mucho más tiempo que todo lo anterior.


1) Mide Primero — Adivinar Te Cuesta la Tarde

🎯 Escenario: Todo el mundo coincide en que el archivo va lento. Nadie sabe decirte cuánto, ni qué parte es la lenta, y la última persona que intentó arreglarlo borró una hoja y rompió el resumen. Necesitas una cifra antes de cambiar nada.

Doce Filas de un Registro de 8.400 Pedidos

Doce pedidos extraídos del registro del que trata este artículo, con la disposición contra la que están escritas todas las fórmulas de abajo: fecha del pedido en A2:A13, región en B2:B13, comercial en C2:C13, producto en D2:D13, unidades en E2:E13 e ingresos en F2:F13. El archivo real tiene 8.400 filas con esta misma forma — 50.400 celdas de datos, que no es una hoja grande según ningún criterio, y tarda cuarenta y cinco segundos en recalcular. Cuatro cifras de estas doce filas reaparecen una y otra vez: los cuatro pedidos del Norte suman 20.778,50, el extracto entero suma 55.778,90 sobre 1.621 unidades, Desk Riser por sí solo son 24.019,90 y A. Okafor vendió 16.054,00. Toda optimización de este artículo tiene que seguir devolviendo esas mismas cifras — de eso trata precisamente. Una fórmula que se vuelve más rápida y cambia su respuesta no se ha optimizado, se ha roto.

ABCDEF
1
Order Date
Region
Rep
Product
Units
Revenue
2
02/03/2026
North
A. Okafor
Desk Riser
140
8386
3
03/03/2026
South
M. Ferreira
Monitor Arm
96
4512
4
04/03/2026
North
L. Kaminski
Desk Riser
55
3294.5
5
05/03/2026
East
A. Okafor
Cable Tray
320
3840
6
06/03/2026
West
S. Nakamura
Monitor Arm
78
3666
7
09/03/2026
North
M. Ferreira
Laptop Stand
210
6090
8
10/03/2026
South
L. Kaminski
Cable Tray
145
1740
9
11/03/2026
East
S. Nakamura
Desk Riser
88
5271.2
10
12/03/2026
West
A. Okafor
Laptop Stand
132
3828
11
13/03/2026
North
S. Nakamura
Monitor Arm
64
3008
12
16/03/2026
South
M. Ferreira
Desk Riser
118
7068.2
13
17/03/2026
East
L. Kaminski
Laptop Stand
175
5075

fxLas celdas con fórmulas están resaltadas en verde

Pasa el mouse sobre las celdas con fórmulas para ver la fórmula y resaltar las celdas referenciadas

Doce filas del registro, dispuestas exactamente igual que las 8.400 reales. Antes de tocar una fórmula, toma dos medidas:

Un recálculo completo. Pulsa Ctrl+Alt+F9. Eso obliga a recalcular todas las fórmulas de todos los libros abiertos, crea Excel que haga falta o no — el peor caso, y el único honesto. Cronométralo. Hazlo tres veces y quédate con la cifra central.

Una edición suelta. Escribe un valor en cualquier celda vacía y pulsa Intro. Cronométralo también. Esta es la cifra con la que la gente convive de verdad, porque es lo que ocurre cada vez que toca el archivo.

En el registro: 44,6 segundos de recálculo completo, 8,9 segundos por una edición.

La distancia entre esas dos cifras ya es un diagnóstico. Si una sola edición cuesta una fracción grande del recálculo completo, algo está obligando a Excel a recalcular mucho más que las celdas que tocaste — eso es volatilidad, y es la sección 3. Si una edición suelta va rápida pero el recálculo completo es glacial, tienes muchas fórmulas caras pero un árbol de dependencias sano — eso son las secciones 6 y 7.

Conoce tus teclas de cálculo. F9 recalcula las celdas sucias de todos los libros abiertos. Mayús+F9 solo la hoja activa. Ctrl+Alt+F9 fuerza todas las fórmulas de todas partes. Ctrl+Mayús+Alt+F9 reconstruye antes el árbol de dependencias y luego lo fuerza todo — el mazo, y el que hay que usar cuando sospechas que la contabilidad interna de Excel se ha quedado obsoleta.


2) Qué Recalcula Excel Realmente

Excel no recalcula el libro cuando pulsas Intro. Recalcula lo que cambió, y lo que depende de lo que cambió.

Mantiene un árbol de dependencias: qué celdas alimentan qué fórmulas. Editas F2, y Excel marca F2 como sucia, luego marca como sucio todo lo que lee F2, luego todo lo que lee aquello, y así hacia abajo. Después calcula las celdas sucias en orden de dependencia.

En un archivo sano esto es asombrosamente eficiente. Un modelo de 200.000 filas puede responder al instante a una edición, porque la edición tocó nueve fórmulas y Excel recalculó nueve fórmulas.

Dos cosas lo destrozan:

  1. Las funciones volátiles se declaran sucias en cada ciclo de cálculo, cambie lo que cambie. Y todo lo que está aguas abajo también queda sucio. El árbol deja de filtrar nada.
  2. Fórmulas que leen más celdas de las que necesitan. El árbol sigue haciendo su trabajo; lo que pasa es que cada fórmula es enorme.

Casi todo libro lento es una de esas dos cosas, y el archivo de este artículo es las dos. Las secciones 3 a 5 son el primer problema. Las secciones 6 a 9, el segundo.


3) Las Nueve Funciones Volátiles, y la Regla del Contagio

Una función volátil se recalcula en cada ciclo de cálculo, hayan cambiado sus entradas o no. En uso corriente hay nueve:

FunciónVolátilPor qué existe
AHORA()SiempreEl reloj avanzó, así que la respuesta cambió
HOY()SiempreLo mismo, con resolución de día
ALEATORIO()SiempreNúmero nuevo en cada cálculo, por definición
ALEATORIO.ENTRE()SiempreLo mismo
MATRIZALEAT()SiempreLo mismo
DESREF()SiempreConstruye una referencia en tiempo de ejecución, así que Excel no puede saber de antemano qué lee
INDIRECTO()SiempreLo mismo, a partir de texto
INFO()SiempreInforma del estado vivo del entorno
CELDA()Con argumento de referenciaInforma del estado vivo de una celda

Las cinco primeras son honestas: son volátiles porque sus respuestas cambian solas de verdad. Las cuatro últimas lo son porque Excel no puede ver qué van a leer hasta ejecutarlas, así que tiene que suponer lo peor.

La volatilidad se contagia, y esa es la parte que duele. Cualquier fórmula que se refiera a una celda volátil se trata como volátil. Cualquier fórmula que se refiera a esa también lo es. Se propaga por toda la cadena.

Así que un solo HOY() en Ajustes!B2, con 400 fórmulas leyéndolo, no te cuesta un recálculo. Te cuesta 401 — en cada edición, para siempre.

=SI(A2<HOY()-30;"Vencido";"Al día")

Copiado hacia abajo 8.400 filas, eso son 8.400 fórmulas volátiles. Escrito una vez en Ajustes!$B$2 y referenciado:

=SI(A2<$B$2-30;"Vencido";"Al día")

...es una celda volátil y 8.400 corrientes. La misma respuesta. Y si la antigüedad solo tiene que ser correcta en el momento en que se abrió el archivo — que es lo que todo el mundo quiere decir en realidad — puedes ir más lejos y escribir la fecha como valor fijo con Ctrl+;, que mete la fecha de hoy como número estático, sin fórmula detrás.

Cómo encontrarlas. Ctrl+B, buscar en Fórmulas, y busca DESREF(, INDIRECTO(, HOY(, AHORA(, ALEATORIO, INFO( y CELDA( de una en una, con Buscar todos — el cuadro te da un recuento y una lista pinchable de cada acierto. Ese recuento es tu presupuesto de volatilidad.


4) DESREF Es un INDICE Volátil

DESREF es la causa más común de un libro lento que nadie sospecha, porque parece inofensiva y hace algo útil.

=SUMA(DESREF($F$1;COINCIDIR($H$2;$B:$B;0)-1;0;12;1))

Las 220 fórmulas del registro construidas sobre este patrón son la razón de que una sola edición cueste 8,9 segundos. INDICE hace el mismo trabajo y no es volátil:

=SUMA(INDICE($F:$F;COINCIDIR($H$2;$B:$B;0)):INDICE($F:$F;COINCIDIR($H$2;$B:$B;0)+11))

Eso parece peor y funciona muchísimo mejor. El hecho clave es que INDICE puede devolver una referencia, no solo un valor, así que puede ir a cualquiera de los dos lados de los dos puntos de un rango. Excel la resuelve al construir el árbol de dependencias en vez de en tiempo de cálculo, que es exactamente por lo que no es volátil.

La otra costumbre clásica con DESREF es el rango dinámico con nombre:

Datos_Ventas  =DESREF(Hoja1!$A$1;0;0;CONTARA(Hoja1!$A:$A);6)

Eso crece con los datos, que es por lo que se escribe, y es volátil, que es por lo que el archivo va lento. Dos sustitutos, ambos no volátiles:

Datos_Ventas  =Hoja1!$A$2:INDICE(Hoja1!$F:$F;CONTARA(Hoja1!$A:$A))

O — mejor, y la respuesta para casi cualquier libro real — selecciona los datos y pulsa Ctrl+T para convertirlos en tabla. Tabla1[Ingresos] crece y se encoge con las filas por su cuenta, se lee en cristiano en cada fórmula que la usa, y no cuesta nada.


5) INDIRECTO Rompe Más Que la Velocidad

INDIRECTO construye una referencia a partir de texto:

=SUMA(INDIRECTO($A$2&"!F2:F8401"))

Es volátil por la misma razón que DESREF, y tiene dos problemas extra que la hacen algo peor que un asunto de rendimiento.

Es invisible para el árbol de dependencias. Excel no puede saber que esta fórmula lee Mar!F2:F8401 hasta evaluar el texto, así que las celdas que lee no quedan registradas como precedentes suyas. Rastrear precedentes no muestra nada. Y como Excel no puede ordenar bien el cálculo, recalcula la fórmula siempre, por si acaso.

No sobrevive a la edición. Renombra la hoja Mar como Marzo y =Mar!F2 sigue el cambio automáticamente, mientras =INDIRECTO("Mar!F2") se convierte en #¡REF! al instante. Inserta una fila y una referencia normal se desplaza; el texto dentro de INDIRECTO no.

Sustitúyela por lo que encaje:

  • Una tabla con referencias estructuradas cuando el destino es un único rango que crece.
  • ELEGIR cuando eliges entre un puñado conocido de rangos: =SUMA(ELEGIR($A$2;Ene!F:F;Feb!F:F;Mar!F:F)). No es volátil.
  • Un rango apilado más SUMAR.SI.CONJUNTO cuando cambias de hoja por nombre — pon el nombre de la hoja en una columna y filtra por ella.
  • Power Query cuando el requisito real es "combina estas pestañas", que suele serlo.

El único sitio donde INDIRECTO se gana su lugar de verdad es una fórmula que debe sobrevivir al borrado de filas — =SUMA(INDIRECTO("A1:A10")) sigue significando A1:A10 se borre lo que se borre. Ese es un uso real y estrecho. Construir un panel entero sobre ella, no.


6) Referencias de Columna Entera y el Impuesto de 1.048.576 Filas

Esta es la fórmula que más cuesta del registro, escrita como la escribe casi todo el mundo:

=SUMAPRODUCTO((B:B="Norte")*(F:F))

Una hoja moderna tiene 1.048.576 filas. B:B son 1.048.576 celdas y F:F otras 1.048.576, y SUMAPRODUCTO construye de verdad matrices de ese tamaño y las multiplica elemento a elemento. Tres columnas enteras en una fórmula — el patrón del archivo real usa además una columna de fecha — son 3.145.728 celdas leídas para responder a una pregunta sobre 8.400 filas.

Catorce de esas fórmulas en el bloque de resumen:

Celdas leídas
Columnas enteras, ×1444.040.192
Filas con datos, ×14352.800
Proporción124,8×

Excel aplica cierto recorte por rango usado — SUMAR.SI.CONJUNTO y CONTAR.SI.CONJUNTO son bastante mejores ignorando la cola vacía que SUMAPRODUCTO — pero no puedes fiarte, y la sección 13 muestra cómo el rango usado se corrompe de todas formas. Acota los rangos tú:

=SUMAR.SI.CONJUNTO(F2:F8401;B2:B8401;"Norte")

O convierte los datos en tabla y deja de pensar en ello:

=SUMAR.SI.CONJUNTO(Pedidos[Ingresos];Pedidos[Región];"Norte")

Con las doce filas de arriba:

=SUMAR.SI.CONJUNTO(F2:F13;B2:B13;"Norte")

...devuelve 20.778,50, igual que el SUMAPRODUCTO de columna entera, igual que la versión con tabla. Tres fórmulas, una respuesta, costes salvajemente distintos.

La excepción que conviene saber. BUSCARV y COINCIDIR contra una columna entera hacen mucho menos daño que un agregado contra una, porque paran en el primer acierto en vez de recorrerlo todo. Acótalas igualmente — pero si estás haciendo triaje, arregla primero los agregados.


7) SUMAPRODUCTO Frente a SUMAR.SI.CONJUNTO

🎯 Escenario: El bloque de resumen tiene catorce celdas, todas escritas con SUMAPRODUCTO, todas correctas, y es la parte más lenta del archivo. Quieres saber si reescribirlas vale una hora.

Estas dos devuelven el mismo número con los datos de ejemplo:

=SUMAPRODUCTO((B2:B13="Norte")*F2:F13)
=SUMAR.SI.CONJUNTO(F2:F13;B2:B13;"Norte")

Ambas dan 20.778,50. Lo que cambia es cómo llegan ahí.

SUMAR.SI.CONJUNTO, CONTAR.SI.CONJUNTO y PROMEDIO.SI.CONJUNTO corren por una vía de código dedicada y optimizada dentro de Excel — una que entiende de rangos, usa el límite del rango usado y reparte entre núcleos. SUMAPRODUCTO es un motor de matrices de propósito general: materializa (B2:B13="Norte") como una matriz de VERDADERO/FALSO, la convierte en 1/0 al multiplicar, la multiplica contra la matriz de ingresos y suma el resultado. Con doce filas la diferencia no se mide. Con columnas enteras, en catorce fórmulas, es la mayor parte de tus cuarenta y cinco segundos.

Reescribe las que solo son sumas y recuentos filtrados:

=CONTAR.SI.CONJUNTO(B2:B13;"Norte")
=SUMAR.SI.CONJUNTO(F2:F13;B2:B13;"Norte";D2:D13;"Desk Riser")

Reserva SUMAPRODUCTO para lo que solo ella puede hacer — ponderar una columna por otra, y criterios que son expresiones y no rangos:

=SUMAPRODUCTO(E2:E13;F2:F13)/SUMA(E2:E13)
=SUMAPRODUCTO((AÑO(A2:A13)=2026)*(E2:E13>100)*F2:F13)

Es un trato justo. SUMAPRODUCTO es una buena función a la que se le está pidiendo un trabajo que otra más rápida hace exactamente igual de bien.


8) La Misma Búsqueda, Escrita Cinco Veces

🎯 Escenario: Una fórmula de la columna de comisiones tarda visiblemente más que el resto de la hoja junta, y son 300 caracteres de SI anidados que nadie quiere tocar.

=SI(ESNOD(BUSCARV(C2;Comerciales!A:D;4;FALSO));"Sin asignar";
   SI(BUSCARV(C2;Comerciales!A:D;4;FALSO)>0,1;F2*BUSCARV(C2;Comerciales!A:D;4;FALSO);
   F2*BUSCARV(C2;Comerciales!A:D;4;FALSO)*0,9))

Eso son cuatro búsquedas idénticas sobre una columna entera, en una sola celda, copiada 8.400 filas: 33.600 recorridos donde bastarían 8.400. Excel no cachea la repetición — evalúa cada una.

LET la calcula una vez y le pone nombre al resultado:

=LET(
  tasa; SI.ERROR(BUSCARV(C2;Comerciales!$A$2:$D$60;4;FALSO);"");
  SI(tasa="";"Sin asignar";
  SI(tasa>0,1; F2*tasa; F2*tasa*0,9))
)

Una búsqueda, rango acotado, la misma respuesta, y ahora es una fórmula que un humano puede leer.

Sin LET — Excel 2019 y anteriores — la respuesta es una columna auxiliar. Pon la búsqueda en H2, refiérete a H2 desde la fórmula de comisión y deja que la hoja tenga una columna más. Las columnas auxiliares tienen fama de recurso de principiante; en rendimiento son justo lo contrario. Una búsqueda por fila, calculada una vez, visible cuando sale mal y trivial de auditar. Una megafórmula que recalcula lo mismo cuatro veces no es más elegante, es cuatro veces más lenta y nadie puede depurarla.


9) Datos Ordenados y la Búsqueda de 14 Comparaciones

Una búsqueda de coincidencia exacta es lineal. =BUSCARV(x;tabla;2;FALSO) y =COINCIDIR(x;rango;0) recorren el rango desde arriba hasta dar con la coincidencia, así que en una tabla de referencia de 8.400 filas un fallo cuesta 8.400 comparaciones y un acierto medio cuesta 4.200.

Una búsqueda aproximada sobre datos ordenados es binaria. Parte el rango por la mitad en cada paso: 8.400 filas se resuelven en unas 14 comparaciones. Eso no es una mejora porcentual, es un cambio de categoría — y con 8.400 búsquedas contra una tabla de 8.400 filas es la diferencia entre una pausa para el café y ningún retraso perceptible.

El truco es que BUSCARV(...;VERDADERO) devuelve el valor menor más próximo cuando no hay coincidencia exacta, lo que es silenciosamente falso para una búsqueda por ID. El patrón en dos pasos lo arregla:

=SI(BUSCARV(C2;Comerciales!$A$2:$D$8401;1;VERDADERO)=C2;
    BUSCARV(C2;Comerciales!$A$2:$D$8401;4;VERDADERO);
    "No encontrado")

La primera búsqueda pregunta "¿cuál es la clave más cercana igual o menor que la mía?" y la compara con la clave que querías. Si coinciden, la fila existe y la segunda búsqueda trae el valor. Si no, no había nada. Dos búsquedas binarias — 28 comparaciones — en lugar de un recorrido lineal de 8.400.

BUSCARX expone la misma maquinaria directamente:

=BUSCARX(C2;Comerciales!$A$2:$A$8401;Comerciales!$D$2:$D$8401;"No encontrado";0;2)

modo_búsqueda 2 significa búsqueda binaria ascendente. Mantiene la semántica de coincidencia exacta y consigue la velocidad de la binaria.

La condición es absoluta. La búsqueda binaria sobre datos desordenados no da error — devuelve una respuesta equivocada, en silencio, en unas filas sí y en otras no. Ordena la tabla de referencia por su clave, y si la tabla la reconstruye una importación, ordénala como parte de la importación en vez de confiar en que llegue ordenada.


10) Las 1.700 Reglas de Formato Condicional

Abre Inicio → Formato condicional → Administrar reglas → Esta hoja en un libro que lleve unos años en uso. El número de esa lista suele ser la sorpresa del día.

Las reglas de formato condicional son fórmulas, se evalúan constantemente y se multiplican a tus espaldas. Copia y pega un bloque de diez filas dentro de un rango con formato y a menudo Excel ya no puede mantener la regla como una sola — la fragmenta en varias, cada una cubriendo un trozo del rango. Haz eso cien veces en dos años y un libro que por diseño tiene tres reglas tiene 1.700 en el archivo.

El daño se multiplica cuando las reglas están escritas contra columnas enteras (Se aplica a: $A:$F) o usan funciones volátiles (=$A1<HOY()), porque entonces cada desplazamiento y cada edición reevalúan una fórmula sobre un millón de filas.

El arreglo es poco glamuroso y rápido:

  1. Administrar reglas → Esta hoja, y lee la columna Se aplica a. Los fragmentos de una misma regla se acumulan como entradas casi idénticas.
  2. Borra los fragmentos, deja una regla, y pon Se aplica a en el rango usado: =$A$2:$F$8401.
  3. Sustituye HOY() dentro de una regla por una referencia a una celda que lo contenga.
  4. Donde una regla existe solo para colorear un tramo de valores, comprueba si un formato de número o un estilo de tabla hace lo mismo gratis.

La validación de datos merece la misma auditoría de paso: una lista desplegable cuyo origen sea =INDIRECTO($B$2&"_Lista") es volátil, y una por fila significa una evaluación volátil por fila.


11) Hazlo Una Vez en Vez de 8.400

El registro tiene una columna que marca los pedidos grandes del Norte, escrita de la forma obvia y arrastrada hacia abajo:

=SI(Y(B2="Norte";E2>100);F2;"")

8.400 fórmulas para producir una lista de quizá 300 filas. Una sola fórmula de matriz dinámica sustituye a todas:

=FILTRAR(A2:F8401;(B2:B8401="Norte")*(E2:E8401>100);"Ninguno")

Una fórmula, un cálculo, un resultado que se redimensiona solo. Lo mismo para la lista de regiones que alguien mantenía a mano y otro alguien mantenía con 8.400 fórmulas CONTAR.SI:

=ORDENAR(UNICOS(B2:B8401))

El principio detrás de ambas: la cantidad de fórmulas importa tanto como el coste de cada una. Excel arrastra un coste fijo por fórmula — contabilidad de dependencias, gestión de marcas de sucio — y 8.400 fórmulas baratas pueden costar tranquilamente más que una cara.


12) El Cálculo Manual Es Triaje, No Cura

Fórmulas → Opciones para el cálculo → Manual hace que Excel deje de recalcular en cada edición. Pulsas F9 cuando quieres los números.

Convierte un archivo inservible en algo usable durante una tarde, y es genuinamente la herramienta correcta mientras metes datos en bloque en un modelo pesado. No es un arreglo, por dos razones.

Sirve números obsoletos. Un libro en modo manual muestra lo último que se calculó. Guárdalo, mándalo por correo, y quien lo reciba abre un archivo cuyos totales no cuadran con sus datos. No hay más aviso que un pequeño "Calcular" en la barra de estado que nadie lee.

El ajuste viaja, y se pega. El modo de cálculo se guarda en el libro, y el modo del primer libro abierto en una sesión de Excel se aplica a todos los que se abran después en esa sesión. Un archivo que un compañero dejó en Manual en 2019 puede poner en Manual tus propios archivos sin decir nada, que es una clase de error capaz de comerse un día entero si no la has visto antes.

Si lo usas, úsalo a propósito: pasa a Manual, haz el trabajo, pulsa Ctrl+Alt+F9, vuelve a Automático y entonces guarda.


13) El Rango Usado Que Llega a la Fila 1.048.576

Pulsa Ctrl+Fin. En un libro sano cae en la última celda de tus datos — F8401. Si cae en XFD1048576, o en algún punto miles de filas por debajo de todo lo visible, Excel cree que el rango usado es la hoja entera.

Esa creencia sale cara. Infla el archivo, anula el recorte por rango usado que hace tolerable SUMAR.SI.CONJUNTO sobre columnas enteras, y deja las barras de desplazamiento inservibles. La causan el formato aplicado a columnas enteras, los datos borrados con la tecla Supr en vez de borrando las filas, y las importaciones que dejaron un rastro de celdas vacías pero con formato.

La reparación, por orden:

  1. Haz clic en el encabezado de la fila inmediatamente debajo de tu última fila con datos.
  2. Ctrl+Mayús+↓ para seleccionar todas las filas hasta el final de la hoja.
  3. Botón derecho → Eliminar — el comando de eliminar filas, no la tecla Supr, que solo borra el contenido.
  4. Haz lo mismo con las columnas a la derecha de tus datos: Ctrl+Mayús+→, botón derecho, Eliminar.
  5. Guarda, cierra y vuelve a abrir. El rango usado solo se recalcula al guardar, así que nada parece cambiar hasta que lo haces.

En el registro: 41 MB → 2,3 MB, y Ctrl+Fin de vuelta a F8401.

Ya que estás, revisa Datos → Consultas y conexiones y Datos → Editar vínculos por si hay conexiones que ya no necesita nadie. Una fórmula que se refiere a un libro cerrado obliga a Excel a leer ese archivo para resolverla; un puñado de ellas a través de una unidad de red lenta explica un retraso por sí solo.


14) Encontrar Qué Fórmulas Cuestan el Dinero de Verdad

Todo lo anterior da por supuesto que sabes dónde se va el tiempo. Cuando no lo sabes, búscalo por bisección — sin complementos.

  1. Copia el libro. Todo lo de abajo es destructivo; no lo hagas nunca en el archivo vivo.
  2. Selecciona todo el bloque de resumen y Copiar → Pegado especial → Valores. Vuelve a cronometrar con Ctrl+Alt+F9.
  3. Si el tiempo se desplomó, tu problema es el bloque de resumen y puedes bisecar dentro de él — convierte la mitad a valores, cronometra, parte de nuevo. Seis rondas reducen 64 fórmulas a una.
  4. Si no se desplomó, haz lo mismo hoja por hoja. Borra una hoja, cronometra, deshaz.

Diez minutos de esto valen más que cualquier cantidad de teoría, y con regularidad encuentran algo que nadie predijo: una fórmula matricial en una hoja olvidada, una búsqueda contra un libro cerrado en la red, una regla de formato condicional que cubre $A:$XFD.

Luego vuelve a medir como empezaste, con el cronómetro y Ctrl+Alt+F9, y anota las dos cifras. En el registro los cuatro cambios que importaron fueron: los SUMAPRODUCTO sobre columnas enteras pasaron a SUMAR.SI.CONJUNTO acotados (44,6s → 6,1s), 220 fórmulas DESREF pasaron a INDICE (6,1s → 1,9s), se reparó el rango usado (1,9s → 0,9s), y 1.700 reglas de formato condicional pasaron a cuatro (0,9s → 0,4s).


15) Errores Comunes

  • Optimizar antes de medir. Reescribir las fórmulas que a uno le caen mal y descubrir que el archivo sigue lento porque el coste estaba en el formato condicional todo el tiempo.
  • Dejar HOY() o AHORA() en una columna arrastrada. Una celda lo contiene; 8.400 filas leen esa celda.
  • Dar por hecho que DESREF es la única forma de que un rango crezca. Una tabla lo hace, sin volatilidad, y se lee mejor.
  • Recurrir a INDIRECTO para cambiar de hoja. ELEGIR cubre una lista fija; apilar los datos y filtrar cubre el resto.
  • Referencias de columna entera en agregados. SUMA, SUMAPRODUCTO, SUMAR.SI.CONJUNTO y CONTAR.SI.CONJUNTO sobre A:A en un archivo con 8.400 filas de datos.
  • Repetir el mismo BUSCARV dentro de una fórmula. Cuatro copias cuestan cuatro búsquedas; LET o una columna auxiliar cuestan una.
  • Búsquedas binarias sobre datos desordenados. Rápidas, y equivocadas, sin ningún error que te avise.
  • Dejar el archivo en cálculo Manual. Los números en pantalla dejan de ser los que implican los datos, y el ajuste sigue al archivo hasta quien lo abra después.
  • Borrar el contenido de las celdas en vez de eliminar las filas. El rango usado se queda con las filas, y el tamaño del archivo también.
  • Convertir fórmulas a valores en el libro vivo para que vaya rápido. Eso no es optimizar, es perder datos con un cronómetro al lado.

Conclusión

Un libro lento es un libro haciendo más trabajo del que la pregunta requiere, y la cantidad se suele poder medir en un par de minutos. Pulsa Ctrl+Alt+F9 y cronométralo. Cuenta las funciones volátiles con Buscar todos. Mira qué leen los agregados frente a lo que realmente contiene datos. Pulsa Ctrl+Fin y mira dónde cae.

En este archivo la respuesta fueron cuatro cambios, ninguno ingenioso, y ninguno alteró una sola cifra: acotar los rangos, sustituir DESREF por INDICE, reparar el rango usado y consolidar las reglas de formato. Cuarenta y cinco segundos se convirtieron en cuatro décimas.

La regla general que hay debajo de todo esto: haz que Excel lea las celdas que contienen tus datos, una vez, y ninguna otra. Casi todo arreglo de rendimiento en Excel es un caso particular de esa frase.

Comparte este artículo:
Volver al Blog