Volver al Blog
Anular Dinamización
Excel
Power Query
SUMAR.SI.CONJUNTO
INDICE

Anular la Dinamización: El Número del T3 Cuadraba con el Total General, y los Dos Eran de Junio a Agosto

09/09/2026
Anular la Dinamización: El Número del T3 Cuadraba con el Total General, y los Dos Eran de Junio a Agosto

Resumen Rápido

Puntos clave de este artículo

  • 🧭 El T2 de 59.043,80 £ más el T3 de 72.198,05 £ da exactamente el total general de 131.241,85 £, y los tres son de meses equivocados — las fórmulas posicionales sobre un mismo bloque siempre cuadran entre ellas, así que su coincidencia no demuestra nada
  • 📌 Una exportación pegada no mueve una referencia como sí lo hace una columna insertada: =SUMA(E2:G9) seguía apuntando exactamente a las celdas de siempre, y después de que marzo apareciera por delante esas celdas contenían junio, julio y agosto
  • 🕵️ El T2 desplazado se desviaba solo un 1,12% y el T3 desplazado un 13,53%, así que el trimestre que estaba casi bien se sentó al lado del que estaba muy mal e hizo que la pareja pareciera coherente
  • 🔑 Una tabla cruzada guarda el mes en la posición de una columna, que es justo lo único con lo que Excel no puede casar — =SUMAR.SI.CONJUNTO(Plana!$C$2:$C$49;Plana!$B$2:$B$49;"Jul") significa julio también el mes que viene, y =SUMA(E2:G9) significa lo que sea que esté cuarto por la izquierda
  • 🧮 =INDICE(Cuadricula!$B$2:$G$9;COCIENTE(FILA()-2;6)+1;RESIDUO(FILA()-2;6)+1) convierte 48 celdas de un rectángulo de 8 por 6 en 48 filas en cualquier versión de Excel, y Anular dinamización de otras columnas de Power Query hace lo mismo en cada actualización
  • 🎚️ =BUSCARH($K$1;$A$1:$G$9;7;FALSO) dice 12.085,75 hoy y 910,60 después de que alguien ordene los productos por ingresos — un índice de fila escrito a mano es una posición haciéndose pasar por un nombre, y no da error nunca
Tiempo de lectura: ~26 min

Ocho productos, seis meses en la cabecera, una cifra en cada celda. El informe trimestral decía T2 59.043,80 £, T3 72.198,05 £, total 131.241,85 £, y los dos trimestres suman exactamente el total. La bolsa de comisiones — el 4% del T3 — pagó 2.887,92 £.

El T3 era en realidad 83.495,15 £. La bolsa tendría que haber sido 3.339,81 £. Septiembre, el mes más grande del año con 30.367,10 £, no estaba en ninguna de las tres cifras.

Nada había dado error. Nadie había editado una fórmula. Lo que pasó es que la exportación de ventas, que se venía pegando sobre el mismo bloque todos los meses desde abril, llegó en septiembre con marzo por delante. Todas las columnas se movieron una posición a la derecha. =SUMA(E2:G9) se había escrito cuando el T3 eran las columnas E a G, y después del pegado las columnas E a G eran junio, julio y agosto. Un valor pegado no mueve una referencia como sí lo hace una columna insertada. La fórmula seguía apuntando exactamente a las celdas a las que siempre había apuntado, y esas celdas contenían ahora otro trimestre.

La conciliación cuadró porque las tres fórmulas son posicionales sobre el mismo bloque: el T2 cubría las columnas B–D, el T3 cubría E–G, el total cubría B–G, y B–D más E–G es B–G contengan lo que contengan esas columnas. La comprobación que existía para pillar esto es la comprobación que dio conforme.

Qué cubre esto. INDICE, COINCIDIR, SUMAR.SI.CONJUNTO, CONTAR.SI.CONJUNTO, SUMAPRODUCTO, CONTARA, COCIENTE, RESIDUO, FILA, COLUMNAS, BUSCARH y UNIRCADENAS funcionan en todas las versiones de este siglo. LET, SECUENCIA, ACOL, APILARH, FILTRAR, ORDENAR, UNICOS y BUSCARX necesitan Microsoft 365 o Excel 2021, y cada sección dice cuál está usando. Power Query viene con Excel 2016 y posteriores. Una tabla cruzada de ventas es solo el ejemplo: una plantilla por departamento y mes, un presupuesto por centro de coste y trimestre, una encuesta con una columna por pregunta y un informe de existencias con una columna por almacén son la misma forma con otras palabras, y todas las trampas de abajo se aplican igual.


1) El Informe, y las Tres Cifras Que Coinciden Entre Sí

El bloque está en A1:G9 — nombre del producto en A, un mes por columna de B a G.

FilaProductoAbrMayJunJulAgoSep
2Atlas Desk Lamp1.240,001.385,50980,251.620,001.755,402.010,75
3Borealis Chair4.820,005.130,004.675,506.240,006.890,257.415,00
4Cedar Bookcase615,75702,40588,00845,10910,60975,25
5Drift Side Table328,90415,20360,00502,75548,30610,00
6Ember Rug2.140,001.980,602.265,752.890,403.120,003.455,50
7Fjord Sofa8.975,009.420,508.630,0011.240,0012.085,7513.310,00
8Glade Planter196,40225,75180,00268,50295,20330,60
9Harbour Mirror1.455,001.610,251.390,501.875,002.040,802.260,00

Tres celdas antes que ninguna otra cosa, porque todo lo de abajo se compara con ellas:

=SUMA($B$2:$G$9)         → 143.206,40   seis meses, ocho productos
=CONTARA($A$2:$A$9)      → 8            productos
=CONTARA($B$1:$G$1)      → 6            meses

Ocho productos y seis meses son 48 números. La cuadrícula los enseña como 48 celdas en un rectángulo de 8 por 6; la tabla plana de la sección 3 enseña esos mismos 48 como 48 filas. Entre las dos formas no se añade nada y no se pierde nada — pero solo una de las dos se puede totalizar por nombre.

Los totales por mes, a los que el resto del artículo vuelve una y otra vez:

AbrMayJunJulAgoSep
19.771,0520.870,2019.070,0025.481,7527.646,3030.367,10

El T2 real (abr + may + jun) es 59.711,25 £. El T3 real (jul + ago + sep) es 83.495,15 £. Suman 143.206,40 £, el total general. Jun + jul + ago — las tres columnas que el informe desplazado sumó en realidad — son 72.198,05 £, un 13,53% por debajo del T3. El T2 desplazado, marzo más abril más mayo, dio 59.043,80 £, solo un 1,12% por debajo del T2 real, y por eso el trimestre que estaba casi bien no llamó la atención de nadie y el trimestre que estaba muy mal se quedó a su lado pareciendo su pareja.

Seis Meses de Ventas como Tabla Cruzada, el Bloque de Ocho por Seis Sobre el Que Está Escrita Cada Fórmula de Este Artículo

Nombre del producto en A2:A9, un mes por columna en B1:G1, y los 48 importes en B2:G9. El mes es la variable que nunca se escribe en una celda — existe solo como la posición de una columna, y eso es lo que convierte cada fórmula posicional sobre este bloque en una fórmula sobre la disposición de la hoja y no sobre julio. El bloque suma 143.206,40 en seis meses, el T2 (abr–jun) son 59.711,25 y el T3 (jul–sep) son 83.495,15, con crecimiento todos los meses desde 19.771,05 en abril hasta 30.367,10 en septiembre. Está deliberadamente descompensado, como lo está una lista de productos real: Fjord Sofa carga 63.661,25 él solo — el 44,45% de todo — y junto con Borealis Chair supone el 69,01%, mientras que todo el semestre de Glade Planter son 1.496,45, el 1,04%.

ABCDEFG
1
Product
Apr
May
Jun
Jul
Aug
Sep
2
Atlas Desk Lamp
1240
1385.5
980.25
1620
1755.4
2010.75
3
Borealis Chair
4820
5130
4675.5
6240
6890.25
7415
4
Cedar Bookcase
615.75
702.4
588
845.1
910.6
975.25
5
Drift Side Table
328.9
415.2
360
502.75
548.3
610
6
Ember Rug
2140
1980.6
2265.75
2890.4
3120
3455.5
7
Fjord Sofa
8975
9420.5
8630
11240
12085.75
13310
8
Glade Planter
196.4
225.75
180
268.5
295.2
330.6
9
Harbour Mirror
1455
1610.25
1390.5
1875
2040.8
2260

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

🎯 Escenario: Pon =CONTARA($B$1:$G$1) y =UNIRCADENAS("|";1;$B$1:$G$1) en dos celdas etiquetadas encima del bloque antes de escribir un solo total. La primera dice cuántas columnas de mes espera la hoja; la segunda es una huella de una sola celda de la fila de cabeceras — Abr|May|Jun|Jul|Ago|Sep — que cambia a la vista en cuanto una actualización cambia la forma. Ninguna de las dos cuesta nada, y entre las dos son el único aviso que puede dar una tabla cruzada.


2) Una Cabecera de Columna Es un Dato, y Ahí Está Todo el Fallo

Fíjate en qué se guarda dónde en ese bloque. El producto se guarda en una celdaA7 contiene el texto Fjord Sofa. El importe se guarda en una celdaF7 contiene 12085,75. El mes no se guarda en ninguna parte. Está implícito en la columna en la que el número resulta estar sentado.

Esa es la diferencia entre las dos formas, y de ahí sale cada consecuencia de este artículo:

  • Un valor que está en una celda se puede buscar. SUMAR.SI.CONJUNTO(...;"Fjord Sofa") encuentra el sofá se haya movido a donde se haya movido.
  • Un valor implícito en la posición solo se puede contar hasta él. SUMA(E2:G9) encuentra lo que ahora mismo sea tercero, cuarto y quinto por la izquierda.

Así que toda fórmula escrita sobre una tabla cruzada es, sin anunciarlo, una fórmula sobre la disposición física de la hoja. Dice la cuarta columna cuando el analista quería decir julio. Esas dos cosas son la misma justo hasta la primera actualización que cambia la disposición, y a partir de ahí son distintas y las dos siguen siendo números.

Aquí no hay ningún estado de error disponible. #¡REF! ocurre cuando se destruye una referencia; no se destruyó nada. #¡VALOR! ocurre cuando un tipo no encaja; el tipo está bien. #N/D ocurre cuando falla una búsqueda; no se buscó nada. Una fórmula posicional sobre datos reestructurados devuelve un número limpio, bien formateado y equivocado, y lo hace en silencio y para siempre.

🎯 Escenario: Antes de escribir una fórmula sobre un bloque que viene de una exportación, hazte una pregunta: si la fuente añadiera mañana una columna, cuáles de mis fórmulas dirían otra cosa y cuáles dirían lo mismo? Todo lo que esté en la primera lista es un fallo esperando una actualización. Esa lista es la que vacía anular la dinamización.


3) La Tabla Plana Que Tendría Que Ser: 48 Filas, Tres Columnas

Los mismos datos, con el mes escrito en lugar de implícito:

FilaProductoMesImporte
2Atlas Desk LampAbr1.240,00
3Atlas Desk LampMay1.385,50
4Atlas Desk LampJun980,25
5Atlas Desk LampJul1.620,00
6Atlas Desk LampAgo1.755,40
7Atlas Desk LampSep2.010,75
8Borealis ChairAbr4.820,00
49Harbour MirrorSep2.260,00

Ocho productos × seis meses = 48 filas, que ocupan A2:C49 en una hoja llamada Plana. Es más fea, es más larga y nadie quiere leerla — y ese es justo el punto. La tabla plana no es el informe. Es aquello de lo que se construye el informe. La sección 9 reconstruye la cuadrícula bonita a partir de ella con una sola fórmula.

En cuanto el mes es un valor, pasan a ser ciertas tres cosas:

  1. Todo total va por nombre. SUMAR.SI.CONJUNTO con "Jul" significa julio mañana igual que hoy.
  2. El número de columnas deja de importar. Un séptimo mes añade ocho filas al final de la tabla plana. Nada de lo que hay encima cambia.
  3. Una tabla dinámica funciona. Una tabla cruzada no se puede dinamizar de forma útil — la lista de campos ofrece Abr, May, Jun como seis medidas separadas, y no hay manera de decir «por mes» porque a Excel nunca se le ha dicho que esas seis cosas son una sola variable.

El tercer punto merece una frase para él solo, porque es el motivo más habitual por el que la gente acaba aquí. Que una tabla dinámica sobre una tabla cruzada no sirva no es una limitación de las tablas dinámicas. Es que los datos no contienen el campo por el que estás intentando dinamizar.

🎯 Escenario: Cuando llegues al momento en que una tabla dinámica «no te deja» agrupar por algo, no te pongas a buscar una opción de la tabla dinámica. Ve a mirar si aquello por lo que quieres agrupar está escrito en alguna celda. Nueve de cada diez veces es un conjunto de cabeceras de columna, y la solución está a una anulación de dinamización de distancia.


4) Anular la Dinamización a Mano: INDICE con COCIENTE y RESIDUO

Esto funciona en cualquier versión de Excel y merece la pena entenderlo aunque uses Power Query, porque es lo que Power Query está haciendo.

Numera las 48 filas de salida de 0 a 47. Entonces, para la fila de salida k:

  • el producto es el producto número (k ÷ 6, redondeado hacia abajo) + 1, y
  • el mes es el mes número (k módulo 6) + 1.

Seis es el número de columnas de mes. Pon la primera fila de la tabla plana en Plana!A2, con lo que k es FILA()-2, y las tres columnas son:

A2:  =INDICE(Cuadricula!$A$2:$A$9; COCIENTE(FILA()-2;6)+1)
B2:  =INDICE(Cuadricula!$B$1:$G$1; RESIDUO(FILA()-2;6)+1)
C2:  =INDICE(Cuadricula!$B$2:$G$9; COCIENTE(FILA()-2;6)+1; RESIDUO(FILA()-2;6)+1)

Arrastra las tres hasta la fila 49 y para ahí. Comprueba los dos extremos y una fila del medio:

Fila de salidakCOCIENTE(k;6)+1RESIDUO(k;6)+1Resultado
2011Atlas Desk Lamp, Abr, 1.240,00
8621Borealis Chair, Abr, 4.820,00
302855Ember Rug, Ago, 3.120,00
494786Harbour Mirror, Sep, 2.260,00

COCIENTE es la división entera: =COCIENTE(28;6) → 4, que descarta el resto en lugar de redondearlo, y por eso no se puede sustituir por REDONDEAR. RESIDUO devuelve ese resto descartado: =RESIDUO(28;6) → 4. Entre los dos convierten un contador corrido en una fila y una columna, y INDICE con dos argumentos se encarga del resto.

El 6 fijo es lo único de estas fórmulas que sabe algo de la forma, y aparece tres veces. Sustitúyelo por COLUMNAS(Cuadricula!$B$1:$G$1) y la construcción se adapta sola a un séptimo mes:

C2:  =INDICE(Cuadricula!$B$2:$G$9;
             COCIENTE(FILA()-2;COLUMNAS(Cuadricula!$B$1:$G$1))+1;
             RESIDUO(FILA()-2;COLUMNAS(Cuadricula!$B$1:$G$1))+1)

Más larga, y quita el único número de la hoja que se queda obsoleto en silencio.

🎯 Escenario: Arrastra las fórmulas más abajo de donde llegan los datos — hasta la fila 60 en vez de la 49 — y mira qué aparece. De la fila 50 en adelante devuelven #¡REF!, porque COCIENTE(48;6)+1 es 9 y no hay un noveno producto. Ese es el comportamiento correcto y conviene verlo una vez: significa que un producto añadido aparece como un error a gritos en vez de como silencio, y te dice exactamente hasta qué fila hay que extender.


5) La Fórmula Única de Microsoft 365

Con matrices dinámicas, toda la anulación de dinamización es una fórmula en una celda, y se redimensiona sola:

=LET(
   p; Cuadricula!$A$2:$A$9;
   m; Cuadricula!$B$1:$G$1;
   v; Cuadricula!$B$2:$G$9;
   APILARH(
     ACOL(SI(SECUENCIA(1;COLUMNAS(m)); p));
     ACOL(SI(SECUENCIA(FILAS(p));      m));
     ACOL(v)
   )
 )

→ un desbordamiento de 48 filas y 3 columnas: Atlas Desk Lamp | Abr | 1240 hasta Harbour Mirror | Sep | 2260.

Los dos SI hacen algo que merece nombrarse, porque parece un truco y no lo es. p tiene 8 filas por 1 columna; SECUENCIA(1;COLUMNAS(m)) tiene 1 fila por 6 columnas, y todos sus valores son distintos de cero, así que es enteramente verdadero. Cuando Excel evalúa SI sobre dos matrices de formas distintas, las difunde a la forma común de 8 por 6, lo que produce cada producto repetido a lo ancho de seis columnas. ACOL lee entonces ese rectángulo de izquierda a derecha y de arriba abajo, que es el mismo orden en el que ACOL(v) lee los importes — así que las tres columnas se alinean fila a fila por construcción y no por suerte.

Si APILARH y ACOL no están disponibles (Excel 2021 tiene LET y SECUENCIA pero no estas), vuelve a las tres columnas de la sección 4. Producen las mismas 48 filas.

Una limitación deliberada: esto se desborda, así que está vivo. Vuelve a leer la cuadrícula en cada recálculo, que es lo que quieres mientras la cuadrícula sea la fuente de verdad, y no es lo que quieres si la cuadrícula está a punto de quedar sobrescrita por el pegado del mes que viene. La sección 6 es la versión que sobrevive a eso.

🎯 Escenario: Pon =FILAS(E2#) al lado del desbordamiento, donde E2 es la celda superior izquierda de la fórmula. Hoy dice 48. Dirá 56 el día que llegue un séptimo mes y 42 el día que se caiga un producto, y lo hará sin que tú hagas nada — lo que la convierte en el detector más barato posible sobre la forma del origen.


6) Power Query: Anular Dinamización de Otras Columnas

Esta es la respuesta para cualquier cosa que se actualice, porque es la única versión que vuelve a deducir la forma en vez de darla por supuesta.

  1. Haz clic en cualquier celda de la cuadrícula y luego en Datos ▸ Desde tabla/rango. Confirma que el rango tiene cabeceras.
  2. En el editor de Power Query, haz clic en la columna Producto para seleccionarla.
  3. Transformar ▸ Anular dinamización de columnas ▸ Anular dinamización de otras columnas.
  4. Cambia el nombre de las dos columnas nuevas de Atributo y Valor a Mes e Importe.
  5. Inicio ▸ Cerrar y cargar en… ▸ Tabla en una hoja nueva.

Cuarenta y ocho filas, tres columnas, igual que en las secciones 4 y 5.

El paso 3 es el importante y el motivo está en el texto del menú. Anular dinamización de columnas anula la dinamización de las columnas que seleccionaste — una lista fija, grabada, así que un séptimo mes no está en ella y se descarta en silencio. Anular dinamización de otras columnas anula la dinamización de todo lo que no seleccionaste — así que coge marzo, coge un séptimo mes y coge lo que la exportación se invente después, porque nunca se le dijo qué columnas esperar, solo cuál conservar.

Esa única opción de menú es la diferencia entre una actualización que absorbe un mes nuevo y una actualización que lo ignora sin decir nada. Elige la equivocada y el fallo es exactamente el del principio de este artículo, solo que ahora ocurre en un Actualizar todo en vez de en un pegado.

Después de cargar, haz clic derecho en la consulta ▸ Propiedades y marca Actualizar datos al abrir el archivo. Así el mes que viene no hay pegado ninguno: la exportación llega a su carpeta, el archivo se abre, la tabla plana se reconstruye y cada SUMAR.SI.CONJUNTO de encima sigue significando lo que dijo.

🎯 Escenario: En la consulta, antes de Cerrar y cargar, aplica Transformar ▸ Tipo de datos ▸ Número entero a la columna Importe solo si el origen es realmente entero — si no, ponle explícitamente Número decimal. Una columna que se queda como Any se carga como texto la primera vez que una celda llega con un espacio de más, y un importe en texto suma cero en SUMAR.SI.CONJUNTO sin quejarse.


7) Qué Cambia Cuando Está Plana

Todos los números de la historia inicial, reescritos contra Plana!A2:C49:

=SUMAR.SI.CONJUNTO(Plana!$C$2:$C$49; Plana!$B$2:$B$49; "Jul")            → 25.481,75
=SUMA(SUMAR.SI.CONJUNTO(Plana!$C$2:$C$49; Plana!$B$2:$B$49; $J$2:$J$4))  → 83.495,15
=SUMAR.SI.CONJUNTO(Plana!$C$2:$C$49; Plana!$A$2:$A$49; "Fjord Sofa")     → 63.661,25
=SUMAR.SI.CONJUNTO(Plana!$C$2:$C$49; Plana!$A$2:$A$49; "Fjord Sofa";
                                     Plana!$B$2:$B$49; "Ago")            → 12.085,75

La segunda merece leerse dos veces, y J2:J4 son tres celdas que contienen Jul, Ago y Sep. SUMAR.SI.CONJUNTO con tres criterios en un rango devuelve tres resultados — 25.481,75, 27.646,30 y 30.367,10 — y la SUMA de fuera los suma. Una fórmula, el trimestre nombrado en vez de contado, y ninguna dependencia de dónde esté julio.

Y como la definición del trimestre vive en tres celdas y no dentro de la fórmula, se cambia de trimestre escribiendo esas tres celdas.

La comparación que importa es qué dice cada versión después de la actualización de marzo. La =SUMA(E2:G9) posicional dijo 72.198,05 £ y tenía buen aspecto. Todas las fórmulas de arriba devuelven exactamente el mismo número que antes de la actualización, porque marzo simplemente se convierte en ocho filas más al final de la tabla plana y julio se sigue llamando julio.

🎯 Escenario: Allí donde vayas a escribir SUMAR.SI.CONJUNTO(...;"Jul") más de dos veces, pon el mes en una celda y referéncialo. No por elegancia — porque un criterio escrito a mano en cuatro fórmulas son cuatro sitios que editar y uno que olvidar, y el que olvidas sigue devolviendo un número.


8) Si Tienes Que Quedarte en la Tabla Cruzada: INDICE/COINCIDIR a Dos Bandas

A veces la cuadrícula es lo que te han dado y anular la dinamización no es una opción. Entonces hay exactamente una manera segura de leer una celda de ahí dentro, y una manera habitual que reproduce en pequeño el fallo del principio.

La segura — las dos coordenadas buscadas por nombre:

=INDICE($B$2:$G$9;
        COINCIDIR($J$1; $A$2:$A$9; 0);
        COINCIDIR($K$1; $B$1:$G$1; 0))

Con J1 = Fjord Sofa y K1 = Ago esto devuelve 12.085,75, y sigue devolviendo 12.085,75 si se reordenan los productos, si se reordenan los meses o si aparece marzo por delante. Las dos COINCIDIR vuelven a encontrar su objetivo en cada recálculo. El 0 de cada una no es opcional: sin él COINCIDIR hace una búsqueda aproximada, que exige datos ordenados y, si no, devuelve un vecino plausible en lugar de un error.

La insegura — una coordenada escrita como número:

=BUSCARH($K$1; $A$1:$G$9; 7; FALSO)                                      → 12.085,75

El 7 significa la séptima fila del bloque, que hoy es Fjord Sofa. Ordena los productos por ingresos de mayor a menor — algo que alguien le hace a un informe de ventas más o menos cada semana — y la séptima fila pasa a ser Cedar Bookcase. La fórmula devuelve entonces 910,60, sin error, sin cambio de color y sin ninguna pista. Se equivoca por un factor de 13, y es el mismo tipo de error que SUMA(E2:G9): una posición haciendo de nombre.

BUSCARX elimina del todo el índice escrito a mano, que es buena parte de por qué existe:

=BUSCARX($J$1; $A$2:$A$9; BUSCARX($K$1; $B$1:$G$1; $B$2:$G$9))           → 12.085,75

La BUSCARX de dentro devuelve toda la columna de agosto como matriz; la de fuera saca de ahí la fila de Fjord Sofa. Dos nombres, ningún número.

🎯 Escenario: Busca BUSCARH y BUSCARV en el libro y mira solo el tercer argumento. Cada uno que sea un entero escrito a mano es una posición haciéndose pasar por un nombre. Sustitúyelo por COINCIDIR(cabecera; fila_de_cabeceras; 0) — la fórmula se hace más larga y deja de poder mentir.


9) Volver a Dinamizar: Un SUMAR.SI.CONJUNTO Que Rellena Toda la Cuadrícula

Nadie presenta 48 filas. La tabla plana es el origen; la tabla cruzada es la vista — y la vista se puede reconstruir desde el origen con una sola fórmula, escrita una vez en la celda superior izquierda y arrastrada a lo ancho y a lo alto.

Coloca otra vez los nombres de producto en A2:A9 y los nombres de mes en B1:G1, y en B2:

=SUMAR.SI.CONJUNTO(Plana!$C$2:$C$49; Plana!$A$2:$A$49; $A2; Plana!$B$2:$B$49; B$1)

Arrástrala hasta G9. El anclaje mixto es todo el mecanismo: $A2 fija la columna y deja moverse a la fila, así que todas las celdas de una fila preguntan por el mismo producto; B$1 fija la fila y deja moverse a la columna, así que todas las celdas de una columna preguntan por el mismo mes. Una fórmula, 48 celdas, y B2 devuelve 1.240,00 — el mismo número que tenía la cuadrícula original.

Dos propiedades que esta cuadrícula tiene y la pegada no:

  • Reordena las cabeceras y los números las siguen. Escribe Sep en B1 y la columna B pasa a ser septiembre. No cambia nada más, porque la fórmula lee la cabecera en vez de contar hasta ella.
  • Una cabecera que no existe devuelve 0, no un número equivocado. Escribe Oct en H1 y la columna H se llena de ceros. Esa es una respuesta visible y comprobable.

La segunda propiedad merece defensa. Los ceros son el aspecto que tiene «ninguna fila coincide», y «ninguna fila coincide» y «ventas realmente cero» tienen el mismo aspecto. La sección 10 los separa.

La alternativa es una tabla dinámica sobre el rango plano, que hace esto sin fórmulas y añade subtotales, y que necesita un Actualizar manual que la gente olvida. Usa la dinámica para explorar; usa la cuadrícula de SUMAR.SI.CONJUNTO para cualquier cosa que se imprima, porque una fórmula nunca está caducada.

🎯 Escenario: Construye la cuadrícula reconstruida al lado de la original durante un ciclo y pon debajo =SUMAPRODUCTO(--(B2:G9<>Cuadricula!B2:G9)). Dice 0 mientras las dos coincidan celda a celda, y dice el número de celdas discrepantes en cuanto divergen. Borra la cuadrícula vieja cuando esa celda haya dicho 0 a lo largo de una actualización completa, no antes.


10) Blancos, Ceros, Filas de Total y las Filas Que No Deberían Sobrevivir

Anular la dinamización es mecánico, lo que significa que arrastra fielmente todo lo que había en el bloque — incluidas las cosas que nunca fueron datos.

Una fila de totales dentro del rango. Si la fila 10 tenía una fila Total y el rango de la anulación era $A$2:$A$10, la tabla plana gana seis filas llamadas Total, y =SUMA(Plana!$C$2:$C$55) sale el doble de la verdad. En una tabla cruzada una fila de totales se ve que es una fila de totales; en una tabla plana es un producto llamado Total que vende sospechosamente bien. Exclúyela en el origen y comprueba con =CONTAR.SI.CONJUNTO(Plana!$A$2:$A$49;"*total*") → 0.

Celdas en blanco. Un blanco de la cuadrícula se convierte en una fila con el importe en blanco. Power Query escribe null, la versión de fórmulas escribe 0. Ninguna de las dos está mal, pero responden a preguntas distintas: un blanco significa no se vendió, un 0 significa se vendió cero, y PROMEDIO las trata de forma distinta — sobre ocho productos de los que dos están en blanco, PROMEDIO divide entre 6 con blancos y entre 8 con ceros. Decide cuál de las dos quiere decir el origen antes de cargar, no después de que alguien cite el promedio.

Nombres de mes como texto. Abr es una cadena de texto, y el texto se ordena alfabéticamente: Abr, Ago, Dic, Ene, Feb, Jul… Un gráfico construido sobre eso pone agosto el segundo y diciembre el tercero. Si la tabla plana se va a ordenar, filtrar por rango o graficar alguna vez, guarda una fecha de verdad — =FECHA(2026;4;1) para abril — y dale formato mmm. Entonces se lee abr, se ordena como abril y responde a «todo de julio en adelante» con >=, cosa que ningún mes en texto puede hacer.

La comprobación de recuento. Después de cualquier anulación de dinamización, =CONTARA(Plana!$A$2:$A$49) tiene que ser igual a =CONTARA(Cuadricula!$A$2:$A$9)*CONTARA(Cuadricula!$B$1:$G$1) → 48. Un desajuste es una columna perdida o una fila de totales absorbida, y es la comprobación más barata de este artículo.

🎯 Escenario: Si mantienes los meses como texto porque el origen manda texto, escribe los doce nombres de mes en $M$1:$M$12 y añade una cuarta columna con =FECHA(2026; COINCIDIR(B2;$M$1:$M$12;0); 1). Ordena y grafica sobre esa columna, y muestra la de texto. Cuesta una columna y elimina toda la categoría de fallos por meses alfabéticos.


11) Cuatro Comprobaciones

Son baratas, viven en celdas etiquetadas y entre las cuatro pillan todos los fallos de este artículo.

1.  =CONTARA(Cuadricula!$A$2:$A$9) * CONTARA(Cuadricula!$B$1:$G$1)  → 48
    =CONTARA(Plana!$A$2:$A$49)                                       → 48
    La tabla plana tiene una fila por cada celda de la cuadrícula. Si no
    son iguales, hay una columna perdida, una fila de totales absorbida o
    un arrastre que se quedó corto.

2.  =SUMA(Cuadricula!$B$2:$G$9)                                      → 143.206,40
    =SUMA(Plana!$C$2:$C$49)                                          → 143.206,40
    Reestructurar mueve números; no los crea ni los destruye. Cualquier
    diferencia significa que las dos formas ya no son los mismos datos.

3.  =UNIRCADENAS("|";1;Cuadricula!$B$1:$G$1)         → Abr|May|Jun|Jul|Ago|Sep
    La huella de la cabecera. Esta es la celda que habría dicho
    Mar|Abr|May|Jun|Jul|Ago la mañana de la actualización desplazada, en un
    libro donde no cambió de aspecto ninguna otra cosa.

4.  =SUMAPRODUCTO(--(CONTAR.SI(Cuadricula!$B$1:$G$1; Plana!$B$2:$B$49)=0))  → 0
    Todos los meses nombrados en la tabla plana son una cabecera real de la
    cuadrícula. Distinto de cero significa que la tabla plana se ha separado
    de su origen — normalmente una carga vieja que nadie actualizó.

La 2 es la que la gente se salta porque parece obvia, y es la que pilla un arrastre incompleto: una fórmula arrastrada hasta la fila 45 en vez de la 49 pierde el septiembre de cuatro productos y sigue pareciendo una tabla completa.

🎯 Escenario: Pon las cuatro en un bloque etiquetado arriba de la hoja plana, no escondidas a la derecha de los datos. Una comprobación hasta la que nadie baja es una comprobación que nadie lee.


12) Doce Trampas

  1. SUMA sobre un rango de columnas en una cuadrícula pegada. La referencia no se mueve cuando se mueven los datos. Esta es toda la historia del principio.
  2. Totales de trimestre que cuadran con el total general. Las fórmulas posicionales sobre un mismo bloque siempre suman entre ellas. Que coincidan no demuestra nada.
  3. BUSCARH o BUSCARV con un índice escrito a mano. La fila 7 es Fjord Sofa hoy y Cedar Bookcase después de ordenar — 12.085,75 frente a 910,60, sin error en ninguno de los dos casos.
  4. COINCIDIR sin el 0 final. La coincidencia aproximada sobre una fila de cabeceras sin ordenar devuelve una columna vecina y no lo dice nunca.
  5. Anular dinamización de columnas en vez de Anular dinamización de otras columnas en Power Query. La lista seleccionada queda congelada, así que un mes nuevo se descarta en cada actualización a partir de entonces.
  6. Una fila de totales dentro del rango a desdinamizar. Se convierte en un producto, y el total general se duplica.
  7. Un 6 fijo en la construcción con COCIENTE/RESIDUO. Correcto hasta que llega un séptimo mes, y a partir de ahí equivocado de una forma que sigue rellenando la tabla con buen aspecto.
  8. Arrastrar las fórmulas de la anulación sin llegar a la última fila. 45 filas en vez de 48 pierde el último mes de tres productos en silencio; lo pilla la comprobación 1 y nada más.
  9. Nombres de mes como texto en cualquier cosa que se ordene o se grafique. Abr, Ago, Dic, Ene — el orden alfabético no es el orden del calendario, y un gráfico no lo va a mencionar.
  10. Blancos convertidos en ceros por el camino. SUMA no nota la diferencia; PROMEDIO, CONTAR y MIN sí, y responden distinto.
  11. Confundir TRANSPONER con anular la dinamización. Transponer convierte ocho filas por seis columnas en seis filas por ocho columnas. Sigue siendo una tabla cruzada, solo que de lado, y el mes sigue sin estar escrito en ninguna parte.
  12. Una anulación desbordada y viva apuntando a una cuadrícula que está a punto de sobrescribirse. La fórmula sigue al pegado, que es el comportamiento correcto y justo el peor momento para él. Carga por Power Query, o pega el desbordamiento como valores antes de la actualización.

Qué Llevarse

Una tabla cruzada guarda una de sus variables en la geometría de la hoja, y la geometría es lo único de un bloque importado que puede cambiar sin que nadie haya decidido cambiarlo. Toda fórmula escrita sobre esa geometría — SUMA(E2:G9), BUSCARH(...;7;FALSO), una serie de gráfico apuntada a la columna F — es una fórmula que dice la cuarta por la izquierda mientras quien la escribió quería decir julio. Esas dos cosas coinciden hasta el día en que un origen añade una columna, y a partir de ahí discrepan para siempre y devuelven números todo el rato.

Anular la dinamización no es un paso de limpieza. Es el paso que convierte posiciones en valores, y los valores son lo único con lo que Excel puede casar. Cuarenta y ocho números en un rectángulo de 8 por 6 pasan a ser 48 números en 48 filas; una SUMA sobre un rango pasa a ser un SUMAR.SI.CONJUNTO sobre un nombre; un informe que se rompía en una actualización pasa a ser un informe que la absorbe. La cuadrícula vuelve en la sección 9, reconstruida por una sola fórmula que lee sus propias cabeceras — que es la versión que puedes pasarle a otra persona sin miedo.

Comparte este artículo:
Volver al Blog