Volver al Blog
Modelo de Datos
Excel
Power Pivot
Tabla Dinámica
DAX

El Modelo de Datos: El Informe del Consejo Superaba el Objetivo en 3.900,75 £ y Todas Sus Regiones Fallaban por Más de 28.000 £

10/09/2026
El Modelo de Datos: El Informe del Consejo Superaba el Objetivo en 3.900,75 £ y Todas Sus Regiones Fallaban por Más de 28.000 £

Resumen Rápido

Puntos clave de este artículo

  • 🧾 La última línea del informe — 63.900,75 £ contra 60.000,00 £, +3.900,75 £, el 106,50% del plan — estaba bien hasta el céntimo mientras las tres líneas de región de encima fallaban por más de 28.000 £ cada una
  • 🔗 Una tabla Objetivos en el modelo sin ninguna relación no es un estado de error: un filtro sobre Clientes[Región] no tiene camino hasta ella, así que cada fila evalúa SUMA sobre la tabla entera e imprime los mismos 60.000,00 £
  • 🧮 Las tres desviaciones de línea suman −116.099,25 £ y la fila de total dice +3.900,75 £; la diferencia de 120.000,00 £ es el objetivo contado dos veces de más, porque la fila de total de una dinámica es la misma medida sin el filtro de fila, nunca la suma de las líneas
  • 🎭 Los porcentajes equivocados también cuadran — 26,16% + 28,00% + 52,34% son 106,50%, la cifra correcta de la compañía — así que una comprobación de que las partes suman el todo pasa en un informe donde ninguna parte es correcta
  • ⭐ La solución es una tabla de tres filas: =ORDENAR(UNICOS(Clientes[Región])) se convierte en una dimensión Regiones relacionada con Clientes y con Objetivos, porque el lado uno de una relación tiene que ser único y Clientes[Región] no lo es nunca
  • 📋 El mismo informe hecho con =SUMAR.SI.CONJUNTO(Pedidos[Importe];Pedidos[Región];$H2) no puede fallar así — no porque SUMAR.SI.CONJUNTO sea más seguro, sino porque te obliga a escribir la unión, y el Modelo de Datos te deja omitirla
Tiempo de lectura: ~26 min

El informe semestral llevaba una sola tabla dinámica. Filas: Región. Valores: Suma de Importe y Suma de Objetivo, con una columna de desviación al lado.

La última línea decía 63.900,75 £ de ventas contra un objetivo de 60.000,00 £3.900,75 £ por encima, el 106,50% del plan. Esa cifra era correcta. Lo sigue siendo hoy.

Las tres líneas de encima decían:

RegiónVentasObjetivoDesviación
Este31.405,0060.000,00−28.595,00
Norte15.694,6060.000,00−44.305,40
Sur16.801,1560.000,00−43.198,85
Total63.900,7560.000,00+3.900,75

Todas las regiones fallaban. La compañía superaba. Las dos afirmaciones salieron de la misma tabla dinámica, en la misma actualización, y ninguna celda dio error.

Lo que pasó es que alguien marcó Agregar estos datos al Modelo de datos en tres tablas — Pedidos, Clientes y Objetivos — y dibujó una relación de Pedidos a Clientes, que es la unión que necesita la cifra de ventas. Objetivos no se relacionó con nada. Se quedó en el modelo como una isla. Y una medida sobre una isla no falla: devuelve el valor que tiene cuando no le llega ningún filtro, que es la suma de la tabla entera, una vez por fila, para siempre.

La respuesta de verdad es que Norte iba 194,60 £ por encima, Sur 698,85 £ por debajo y Este 4.405,00 £ por encima.

Qué cubre esto. El Modelo de Datos de Excel — el motor que hay detrás de Power Pivot — viene con Excel 2013 y posteriores en Windows; la ventana de Power Pivot está disponible en Microsoft 365, Office 2019/2021/2024 y las ediciones Professional Plus de 2013/2016. Las relaciones y DISTINCTCOUNT funcionan desde Tabla dinámica ▸ Agregar estos datos al Modelo de datos incluso donde falta la pestaña de Power Pivot; escribir tus propias medidas, en la sección 7, es la parte que sí quiere esa pestaña. Las fórmulas de hoja de la sección 9 — SUMAR.SI.CONJUNTO, CONTAR.SI.CONJUNTO, SUMAPRODUCTO, INDICE/COINCIDIR, SI.ERROR — funcionan en todas partes; BUSCARX, UNICOS y ORDENAR necesitan Microsoft 365 o Excel 2021. Ventas contra objetivo es solo el ejemplo: real contra presupuesto, plantilla contra plantilla autorizada, incidencias contra ANS y existencias contra punto de pedido son la misma forma de dos tablas de hechos y una dimensión, y todas las trampas de abajo se aplican igual.


1) El Informe, y el Total Que Estaba Bien

Tres tablas. La primera es la cuadrícula de abajo y ocupa A1:F15 en tu propia hoja:

Pedidos — catorce filas, de enero a mayo de 2026. El Importe es Unidades × Precio Unitario, y no hay ninguna columna de región. Los pedidos identifican a un cliente, y nada más.

Clientes — seis filas, una por cliente, y el único sitio donde se escribe la palabra Norte:

ID ClienteClienteRegión
C-101Halden FoodsNorte
C-102Marrow & TateNorte
C-103Verity LabsSur
C-104Pallas RetailSur
C-105Kestrel GroupEste
C-106Idris BrothersEste

Objetivos — seis filas, una cifra trimestral por región:

RegiónTrimestreObjetivo
NorteT18.000,00
NorteT27.500,00
SurT19.000,00
SurT28.500,00
EsteT114.000,00
EsteT213.000,00

Cuatro cifras que conviene retener, porque todo lo de abajo se mide contra ellas:

=SUMA(F2:F15)                     → 63.900,75   todas las ventas, seis clientes, cinco meses
=SUMAPRODUCTO(D2:D15;E2:E15)      → 63.900,75   el mismo total desde unidades y precios
=SUMA(Objetivos[Objetivo])        → 60.000,00   la tabla de objetivos entera
=CONTARA(Clientes[ID Cliente])    → 6           clientes, y por tanto seis caminos hasta una región

Ventas por región, que la dinámica calculó bien: Norte 15.694,60 £, Sur 16.801,15 £, Este 31.405,00 £. Objetivo por región, que la dinámica no enseñó nunca: Norte 15.500,00 £, Sur 17.500,00 £, Este 27.000,00 £.

La Tabla de Pedidos: Catorce Filas, Una Clave de Cliente y Ninguna Región en Ninguna Parte

Catorce pedidos de enero a mayo de 2026, en A1:F15. El Importe es Unidades × Precio Unitario en todas las filas, así que =SUMAPRODUCTO(D2:D15;E2:E15) y =SUMA(F2:F15) devuelven los dos 63.900,75 sobre 498 unidades, y el pedido medio es 4.564,34. La columna que más importa es la que no está: no hay Región. Los pedidos llevan una clave de cliente — C-101 a C-106 — y la región vive una tabla más allá, en Clientes, que es exactamente la disposición que debe tener una tabla de hechos y exactamente la disposición que hace que un informe dependa de una unión. Seis clientes producen un negocio muy desigual: C-106 solo son 17.460,00, el 27,32% del semestre, y el pedido más grande, SO-4107 con 9.140,00, es el 14,30% de todo. El T1 son 41.884,90 y el T2 son 22.015,85, un reparto que la cifra de titular de este artículo no enseña nunca.

ABCDEF
1
Order
Date
Customer ID
Units
Unit Price
Amount
2
SO-4101
2026-01-06
C-101
40
120.5
4820
3
SO-4102
2026-01-14
C-103
14
153.25
2145.5
4
SO-4103
2026-01-22
C-105
65
122
7930
5
SO-4104
2026-02-03
C-102
25
50.75
1268.75
6
SO-4105
2026-02-11
C-104
40
135.25
5410
7
SO-4106
2026-02-19
C-101
15
218.35
3275.25
8
SO-4107
2026-03-02
C-106
80
114.25
9140
9
SO-4108
2026-03-17
C-103
12
156.7
1880.4
10
SO-4109
2026-03-28
C-105
50
120.3
6015
11
SO-4110
2026-04-09
C-102
18
146.7
2640.6
12
SO-4111
2026-04-20
C-104
20
247.75
4955
13
SO-4112
2026-05-05
C-106
64
130
8320
14
SO-4113
2026-05-18
C-101
30
123
3690
15
SO-4114
2026-05-29
C-103
25
96.41
2410.25

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: Antes de leer una dinámica construida sobre el Modelo de Datos, pon =SUMA(Objetivos[Objetivo]) en una celda de la hoja y compárala con una sola línea de la columna de objetivo de la dinámica. Si el objetivo de una región es igual a la tabla entera, estás mirando una isla, y ningún otro número de esa columna significa nada. Es una celda, cuesta diez segundos y es la única comprobación de este artículo que no necesita menús.


2) El Modelo de Datos No Son Tus Hojas

Lo primero que hay que tener claro es qué hizo esa casilla. Agregar estos datos al Modelo de datos no apunta una dinámica a tu hoja. Carga una copia de la tabla en una base de datos columnar en memoria que vive dentro del libro, y la dinámica lee esa copia.

De ahí salen tres consecuencias inmediatas, y las tres sorprenden:

  • El modelo está desactualizado hasta que lo actualizas. Editar F7 en la hoja no cambia nada en la dinámica hasta Datos ▸ Actualizar todo. Una dinámica de hoja se comporta igual, pero al menos lee las celdas que editaste. El modelo está leyendo una segunda copia de ellas.
  • Solo entran tablas. Un rango no vale; Excel lo convierte antes en Tabla (Ctrl + T), o se niega. Eso es una virtud — una tabla tiene nombre y columnas con nombre, y las relaciones se dibujan entre columnas con nombre.
  • La relación se guarda en el modelo, no en las fórmulas. Nada en la cuadrícula deja constancia de que Pedidos se une con Clientes. No hay ningún BUSCARV que leer, ninguna columna auxiliar que inspeccionar, ninguna celda que puedas pulsar para ver la unión. La unión es una línea en un diagrama, y si nadie abre el diagrama, la unión es invisible.

Ese último punto es todo el artículo. Un informe de hoja declara sus uniones en celdas, donde son feas y evidentes. Un informe de modelo las declara en un diagrama que nadie abre.

🎯 Escenario: Abre Datos ▸ Administrar modelo de datos (o la pestaña de Power Pivot si la tienes) y cambia a Vista de diagrama antes de leer una sola cifra de una dinámica servida por el modelo. Cuenta las tablas y después cuenta las líneas. Toda tabla sin ninguna línea tocándola es una isla, y todas sus medidas se van a repetir.


3) Los Filtros Viajan por las Relaciones, y Ahí No Había Ninguna

Una tabla dinámica no calcula la cifra de una región mirando filas de región. La calcula filtrando el modelo a esa región y evaluando la medida. La fila de Norte significa: pon Clientes[Región] = "Norte" y evalúa SUMA de Importe y SUMA de Objetivo.

El filtro sobre Clientes[Región] llega a Pedidos porque hay una relación de Pedidos[ID Cliente] a Clientes[ID Cliente], y los filtros fluyen desde el lado uno de una relación hacia el lado varios. Dos clientes son de Norte, así que cinco de los catorce pedidos sobreviven al filtro y SUM(Pedidos[Importe]) devuelve 15.694,60 £. Correcto.

El mismo filtro no llega a Objetivos en absoluto. No hay camino. Así que SUM(Objetivos[Objetivo]) se evalúa sobre una tabla del todo sin filtrar y devuelve 60.000,00 £ — los mismos 60.000,00 £ que devolverá en cada fila de cada dinámica durante el resto de la vida del libro.

Vale la pena decirlo con todas las letras, porque es el mecanismo que hay detrás de casi todas las cifras equivocadas que produce un Modelo de Datos:

Una tabla sin relación no da error. Te ignora. Una medida sobre una tabla a la que no llega ningún filtro devuelve su total general, correctamente y una y otra vez, en todas las celdas donde la pongas.

Aquí no hay ningún estado de error disponible. #¡REF! necesita una referencia destruida; no se destruyó nada. #N/D necesita una búsqueda fallida; no se buscó nada. Un blanco al menos se vería; el modelo no tiene motivo para producirlo, porque SUM sobre seis filas con datos es un número perfectamente válido. El informe está mal de la única manera en que un informe puede estarlo sin que nadie se dé cuenta: con soltura.

🎯 Escenario: La firma de una relación que falta es una columna de números idénticos junto a un campo de fila que sí varía. No parecidos — idénticos, en toda la columna, subtotales incluidos. Si ves eso una vez en tu vida laboral, no toques el formato de número. Abre la Vista de diagrama.


4) Por Qué el Total General Estaba Bien, y Por Qué Eso Es lo Peor

La fila de total no es la suma de las líneas. No lo fue nunca, en ninguna tabla dinámica, con relaciones o sin ellas. La fila de total es la misma medida evaluada sin el filtro de fila.

En un modelo bien relacionado las dos cosas coinciden para una medida aditiva, y por eso nadie repara nunca en la diferencia. Aquí se separan, y la aritmética es exacta:

Desviaciones de línea:  −44.305,40 + −43.198,85 + −28.595,00  =  −116.099,25
Fila de total:          63.900,75 − 60.000,00                  =    +3.900,75
Diferencia:                                                        120.000,00

120.000,00 £ son 60.000,00 £ dos veces. El objetivo se contó tres veces en tres líneas de región cuando el informe solo tiene una copia de él, así que las líneas cargan dos objetivos de más y la fila de total no carga ninguno. El hueco entre las líneas y el total no es ruido, ni es redondeo. Es exactamente (número de filas − 1) × la tabla entera, y si existiera una cuarta región habría sido 180.000,00 £.

Y la columna de porcentaje también cuadraba, que es por lo que el informe se aprobó. Las cifras de cumplimiento de la dinámica eran Este 52,34%, Norte 26,16%, Sur 28,00% — todas ellas las ventas de una región divididas entre el objetivo entero de la compañía. Suman 106,50%, que es exactamente la cifra correcta de la compañía, porque dividir cada parte entre una misma constante y sumar es lo mismo que sumar y después dividir.

VentasObjetivo de la dinámica% de la dinámicaObjetivo real% real
Este31.405,0060.000,0052,34%27.000,00116,31%
Norte15.694,6060.000,0026,16%15.500,00101,26%
Sur16.801,1560.000,0028,00%17.500,0096,01%
Total63.900,7560.000,00106,50%60.000,00106,50%

Las dos columnas de la derecha comparten un total y no coinciden en nada más. Una comprobación de que las partes suman el todo pasa aquí — las partes suman el todo. Simplemente son las partes equivocadas.

🎯 Escenario: En cualquier dinámica con una columna de desviación o de porcentaje, pon un =SUMA() sobre los valores visibles de las líneas en una celda libre y compáralo con la fila de total. Para una medida aditiva sobre un modelo bien relacionado, los dos coinciden. Cuando no, la diferencia suele ser una tabla entera, y dividirla entre el número de líneas menos uno te dice cuál.


5) La Solución Es Una Tabla de Tres Filas

Objetivos no se puede relacionar con Clientes, y el motivo es la regla que gobierna todas las relaciones del modelo: el lado uno tiene que ser único. Clientes[Región] contiene Norte, Norte, Sur, Sur, Este, Este. Excel rechazará la relación, con razón, y ese rechazo es el punto en el que la mayoría se rinde y deja la isla donde está.

Lo que necesitan las dos tablas es una tercera cuya lista de regiones sea única — una dimensión. Tiene tres filas:

Región
Este
Norte
Sur

Constrúyela como prefieras. En Microsoft 365, una fórmula:

=ORDENAR(UNICOS(Clientes[Región]))      → Este, Norte, Sur

En Power Query, haz referencia a la consulta Clientes, conserva la columna Región, Quitar duplicados y cárgala como conexión al modelo — lo que tiene la ventaja de que una región nueva en Clientes aparece aquí en la siguiente actualización en vez de la próxima vez que alguien se acuerde. En cualquier versión, escribir tres palabras en una tabla y pulsar Ctrl + T es una respuesta legítima.

Después dibuja dos relaciones desde la dimensión:

Regiones[Región]  1 ──── *  Clientes[Región]
Regiones[Región]  1 ──── *  Objetivos[Región]

Y — este es el paso que se salta la gente — pon Regiones[Región] en las filas de la dinámica, no Clientes[Región]. La dimensión es ahora lo que filtra las dos tablas de hechos. Filtrar Clientes[Región] sigue llegando a Pedidos y sigue sin llegar a Objetivos, porque los filtros van de uno a varios y Clientes está ahora en el lado varios de la relación nueva. Misma dinámica, mismos datos, mismas tres líneas, y por fin la columna de objetivo se mueve:

RegiónVentasObjetivoDesviaciónCumplimiento
Este31.405,0027.000,00+4.405,00116,31%
Norte15.694,6015.500,00+194,60101,26%
Sur16.801,1517.500,00−698,8596,01%
Total63.900,7560.000,00+3.900,75106,50%

Ahora las líneas suman el total: 4.405,00 + 194,60 − 698,85 = 3.900,75. Así es como se ve un modelo relacionado, y es la única versión de esta tabla en la que la comprobación de aditividad significa algo.

Esta forma — una dimensión en el centro, las tablas de hechos colgando de ella — es un esquema en estrella, y no es pulcritud académica. Es la disposición en la que un solo filtro puede llegar a todas las tablas que tienen que responderle.

🎯 Escenario: Siempre que dos tablas compartan el nombre de una columna y te apetezca segmentar las dos por ella, la respuesta es una tabla de dimensión con los valores distintos de esa columna, no una relación entre los dos hechos. Excel te dejará intentar la unión directa y te dirá que no; la respuesta útil a ese no es una tabla de tres filas, no una columna auxiliar.


6) Las Reglas Que Excel Comprueba, y las Cuatro Que No

Excel comprueba cuatro cosas al dibujar una relación, y se niega si falla alguna:

  1. El lado uno es único. Las claves duplicadas en la tabla de búsqueda se rechazan sin más.
  2. El lado uno no tiene blancos. Una clave en blanco no es una identidad válida.
  3. Las dos columnas son del mismo tipo de dato. "1001" como texto y 1001 como número son columnas distintas para el modelo, y no las va a convertir por ti como a veces parece hacer BUSCARV.
  4. La relación no crea un bucle ambiguo. Si dos caminos unieran las mismas tablas, la segunda se crea inactiva — una línea punteada en la Vista de diagrama — y no hace nada hasta que una medida llama a USERELATIONSHIP para encenderla.

Y aquí van cuatro que no comprueba, y cada una produce una cifra equivocada en vez de un mensaje:

  • Valores que no casan. Una relación entre Pedidos[ID Cliente] y Clientes[ID Cliente] se crea tan tranquila aunque ninguna de las catorce claves de pedido exista en Clientes. Todos los pedidos caen entonces en una fila (en blanco) de la dinámica, que parece una rareza de formato y es en realidad el informe diciéndote que la unión no casó con nada.
  • Espacios finales. "C-101 " y "C-101" son claves distintas. La relación es legal; la coincidencia no se produce; las filas se van a (en blanco). Recortar en Power Query en los dos lados, antes de cargar, es el único arreglo fiable.
  • Una coincidencia parcial. Que casen cinco clientes de seis no es un error, es una cifra más pequeña. Los pedidos del sexto cliente — potencialmente el mayor, como serían aquí los 17.460,00 £ de C-106 — se quedan en (en blanco) mientras el total sigue siendo correcto.
  • Si la relación es la que querías. Un modelo con una columna de fecha en dos tablas invita a unirlas por ahí. Excel lo hará. Estará mal y será silencioso.

🎯 Escenario: Después de cada relación nueva, arrastra la clave del lado varios a las filas de una dinámica con COUNTROWS de la tabla de hechos al lado, y busca una fila (en blanco). No debería haberla. Si la hay, su tamaño te dice qué parte del informe está sin casar en silencio — y esa fila sobrevive a todos los totales, porque al total le da igual de qué línea vinieron las filas.


7) Las Medidas Implícitas No Son Medidas

Arrastra un campo numérico al área de Valores y Excel te escribe una medida implícita llamada Suma de Importe. Funciona, es donde empieza todo el mundo y tiene tres limitaciones que importan en cuanto el informe pasa de una columna:

  • No se puede referenciar desde otra medida. No hay forma de escribir «desviación» en función de ella.
  • No se puede reutilizar en una segunda dinámica, ni renombrar una vez y en todas partes.
  • Cambia de significado sola si alguien pasa la agregación de Suma a Cuenta en una dinámica y no en otra.

Una medida explícita es la que escribes tú, una vez, en el modelo, y que todas las dinámicas usan con la misma definición:

Total Sales      := SUM(Pedidos[Importe])
Target           := SUM(Objetivos[Objetivo])
Variance         := [Total Sales] - [Target]
Achievement      := DIVIDE([Total Sales], [Target])
Orders Count     := COUNTROWS(Pedidos)
Customers Billed := DISTINCTCOUNT(Pedidos[ID Cliente])

Dos detalles de ese bloque se ganan el sitio:

DIVIDE en vez de /. [Total Sales] / [Target] devuelve #¡DIV/0! en cualquier fila donde el objetivo esté en blanco o sea cero — y los blancos son habituales en cuanto una región existe en una tabla y no en la otra. DIVIDE devuelve BLANK() en su lugar, y una celda en blanco en una dinámica desaparece en vez de gritar. Si quieres un valor de reserva concreto, DIVIDE([Total Sales], [Target], 0) te lo da.

Las medidas se escriben en DAX, y DAX no está traducido. El lenguaje de fórmulas de la ventana de Power Pivot usa nombres de función en inglés en todas las versiones idiomáticas de Excel, y separa los argumentos con comas, incluso en un libro cuyas fórmulas de hoja usan puntos y comas y SUMAR.SI.CONJUNTO. Es una diferencia real con la cuadrícula, y pilla a la gente exactamente una vez.

🎯 Escenario: En cuanto necesites una segunda columna derivada de la primera — una desviación, un peso, un porcentaje de plan — deja de arrastrar campos y escribe la medida. Dos medidas explícitas y una que las referencia es menos trabajo que tres implícitas, y es la única versión en la que la definición vive en un solo sitio.


8) Contar Cosas: COUNT, COUNTROWS y DISTINCTCOUNT

La única virtud verdaderamente insustituible del Modelo de Datos es DISTINCTCOUNT, y conviene saber con precisión qué responde cada una de las tres opciones sobre estos datos:

COUNTROWS(Pedidos)                    → 14   líneas de pedido
COUNT(Pedidos[Importe])               → 14   importes numéricos, que resulta ser lo mismo
DISTINCTCOUNT(Pedidos[ID Cliente])    →  6   clientes que compraron algo
DISTINCTCOUNT(Clientes[Región])       →  3   regiones en la lista de clientes

COUNTROWS cuenta filas. COUNT cuenta los valores no vacíos de una sola columna con nombre, así que coincide con COUNTROWS solo mientras esa columna esté llena — apúntala a una columna con huecos y las dos respuestas se separan. DISTINCTCOUNT es la que una dinámica de hoja no sabe hacer en absoluto, y la que no suma: clientes facturados en Norte son 2, en Sur 2, en Este 2, y el total de la compañía es 6 solo porque ningún cliente pertenece a dos regiones. Cambia ese supuesto y el total deja de ser la suma de las líneas — correctamente, esta vez.

Una trampa emparentada que merece nombre: si tu clave de cliente fuese numérica — 101, 102 — arrastrarla a Valores te da Suma de ID Cliente, un número sin significado que parece dinero. Las claves que son números son un pequeño impuesto diario; las claves que son texto, no.

🎯 Escenario: Pon Orders Count y Customers Billed una al lado de la otra en cada dinámica del modelo que construyas, al menos mientras la construyes. Dos recuentos que se mueven juntos confirman que la unión está filtrando; un recuento que no cambia nunca es la misma firma de isla que un total repetido, en una columna donde se ve mucho mejor.


9) El Mismo Informe en la Cuadrícula, y Por Qué No Puede Fallar Así

La versión de hoja necesita la región en cada línea de pedido, lo que obliga a decir la unión en voz alta:

=BUSCARX($C2;Clientes[ID Cliente];Clientes[Región];"(sin cliente)")

o, en cualquier versión de Excel:

=SI.ERROR(INDICE(Clientes[Región];COINCIDIR($C2;Clientes[ID Cliente];0));"(sin cliente)")

Con esa columna rellenada hacia abajo, el informe son dos SUMAR.SI.CONJUNTO y una resta, con el nombre de la región en $H2:

=SUMAR.SI.CONJUNTO(Pedidos[Importe];Pedidos[Región];$H2)      → 15.694,60 para Norte
=SUMAR.SI.CONJUNTO(Objetivos[Objetivo];Objetivos[Región];$H2) → 15.500,00 para Norte

Y las comprobaciones que lo mantienen honesto:

=CONTAR.SI(Pedidos[Región];"(sin cliente)")                        → 0   todos los pedidos encontraron su cliente
=SUMA(H2:H4)-SUMA(Objetivos[Objetivo])                             → 0   todas las filas de objetivo cayeron en una región
=CONTAR.SI.CONJUNTO(Objetivos[Región];$H2;Objetivos[Trimestre];"T1") → 1   una fila de objetivo por región y trimestre

La tercera es la comprobación que la gente se salta y luego necesita. Una fila de objetivo duplicada no da error, no cambia la forma del informe y dobla en silencio el plan de una región — la versión de hoja exactamente del problema de contar que describe la sección 4.

Esta versión no puede producir el error del informe del consejo, y es importante ser preciso sobre por qué. No es que SUMAR.SI.CONJUNTO sea más seguro que un Modelo de Datos — por encima de unas pocas decenas de miles de filas el modelo es más rápido, más pequeño y mejor exactamente en este trabajo. Es que la hoja te obliga a escribir la unión dentro de una celda. SUMAR.SI.CONJUNTO(Objetivos[Objetivo];Objetivos[Región];$H2) nombra la columna que filtra. No existe una versión de esa fórmula que ignore $H2 en silencio y devuelva la tabla entera; si el rango de criterios estuviera mal obtendrías 0 o #¡VALOR!, y las dos cosas se ven.

La fuerza del Modelo de Datos es que las uniones se declaran una vez, en un sitio, en vez de repetirse en cada fórmula. El coste es que una unión que nunca se declaró se ve exactamente igual que una que funciona.

🎯 Escenario: Cuando migres un informe de SUMAR.SI.CONJUNTO que funciona al Modelo de Datos, deja viva la hoja vieja un ciclo y pon =celda_dinámica - celda_vieja entre las dos. Tres ceros valen más que toda la confianza del mundo sobre cómo se comportan las relaciones, y esa conciliación es lo último que se borra, no lo primero.


10) Lo Que Dice de Verdad el Modelo Relacionado

Vale la pena leer la dinámica corregida, porque la cifra de la que presumía la versión rota escondía algo real. Reparte los mismos 63.900,75 £ por trimestre:

RegiónVentas T1Objetivo T1% T1Ventas T2Objetivo T2% T2
Este23.085,0014.000,00164,89%8.320,0013.000,0064,00%
Norte9.364,008.000,00117,05%6.330,607.500,0084,41%
Sur9.435,909.000,00104,84%7.365,258.500,0086,65%
Total41.884,9031.000,00135,11%22.015,8529.000,0075,92%

El semestre es el 106,50% del plan. El T1 fue el 135,11% y el T2 el 75,92%, y todas las regiones cayeron en el segundo trimestre — Este la que más, del 164,89% a exactamente el 64,00%. Un informe que dice +3.900,75 £ y se para no se equivoca en los 3.900,75 £. Simplemente no es la frase que hacía falta.

Ese reparto está disponible solo porque Objetivos lleva una columna Trimestre y el modelo relacionado puede filtrar por ella. La versión rota no podría haber enseñado esta tabla en absoluto: sin relación, todas sus celdas habrían dicho 60.000,00 £.

🎯 Escenario: Cuando un total supera el plan, pon la misma medida contra la siguiente dimensión — trimestre, mes, canal — antes de escribir el comentario. Un único número positivo es la forma menos informativa que puede producir un modelo, y el modelo que lo produjo puede producir el desglose gratis.


11) Cuatro Comprobaciones

Cuatro cosas, en este orden, antes de que una dinámica servida por el modelo salga a ninguna parte:

  1. Vista de diagrama, tablas y líneas. Toda tabla que aporte un valor tiene que ser alcanzable desde toda tabla que aporte un filtro. Las islas se ven en dos segundos y son invisibles en las cifras.
  2. La prueba de la repetición. A cada medida se la mira una vez junto a un campo de fila que varíe. Una columna idéntica en toda su longitud es una isla mientras no se demuestre lo contrario.
  3. La prueba de la aditividad. Para una medida aditiva, =SUMA() sobre las líneas de la dinámica es igual a su fila de total. Cuando no lo es, divide la diferencia entre (líneas − 1); si te sale una tabla entera, has encontrado la isla.
  4. La fila (en blanco). A cada relación se la comprueba una vez con la clave del lado varios en las filas y COUNTROWS al lado. Una fila (en blanco) son datos sin casar, y su tamaño es lo equivocada que está cada línea del informe.

🎯 Escenario: Escribe esas cuatro en la hoja, al lado de la dinámica, como texto, con la fecha en que se ejecutaron por última vez. Las uniones de un modelo son invisibles por diseño, así que la única constancia duradera de que alguien las comprobó es la que escribes tú.


12) Doce Trampas

  1. Una tabla sin ninguna relación. Devuelve su total general en todas las celdas. La de este artículo; la más común con diferencia.
  2. Una relación que existe pero apunta a la columna equivocada. También silenciosa. Un modelo con fechas en tres tablas aceptará casi cualquier unión que dibujes entre ellas.
  3. Una relación inactiva. La línea punteada de la Vista de diagrama no hace absolutamente nada hasta que una medida envuelve el cálculo en CALCULATE(..., USERELATIONSHIP(...)). Parece una relación en el diagrama, y ese es el problema.
  4. Claves de texto contra claves numéricas. La relación se rechaza, que es el buen desenlace; el malo es que alguien lo «arregle» dando formato a una columna sin convertirla, porque el formato no es el tipo.
  5. Espacios finales en una clave. Relación legal, ninguna coincidencia, todo en (en blanco). Recortar los dos lados en Power Query, no en la hoja.
  6. Duplicados en el lado uno. Excel se niega. La solución es una tabla de dimensión de valores distintos, no borrar filas que necesitas.
  7. Filtrar el lado varios esperando que el lado uno siga. Los filtros van solo de uno a varios. Segmentar por Pedidos[ID Cliente] no reducirá un recuento sobre Clientes.
  8. Medidas implícitas en un informe de más de una columna. No se pueden anidar, así que la segunda columna se hace a mano y las dos se separan.
  9. / en vez de DIVIDE. #¡DIV/0! repartido por la dinámica la primera vez que un miembro de la dimensión no tiene objetivo.
  10. COUNT donde se quería DISTINCTCOUNT. Catorce pedidos no son seis clientes, y las dos son respuestas legítimas a una pregunta formulada como «cuántos».
  11. Ninguna tabla de fechas. Agrupar por mes o trimestre fechas del modelo, o escribir cualquier medida de inteligencia de tiempo, pide una tabla de fechas contigua y en condiciones relacionada con el hecho. Sin ella, los trimestres salen del texto que alguien escribió.
  12. Olvidar que el modelo guarda una copia. Hoja editada, modelo sin actualizar y una dinámica informando con aplomo de la semana pasada. Actualizar todo actualiza las consultas y el modelo en un orden que suele funcionar y de vez en cuando hay que repetir.

Qué Llevarse

Una relación es una afirmación, y una afirmación no hecha en el Modelo de Datos no falla: toma un valor por defecto. Una medida sobre una tabla a la que no llega ningún filtro devuelve la tabla entera, en todas las celdas, para siempre, con el mismo formato que un número que significa algo. Por eso las líneas de región podían estar cada una equivocada en más de 28.000 £ mientras la fila de total estaba bien hasta el céntimo: el total general es la única celda de toda la dinámica donde «no me llegó ningún filtro» resulta ser verdad.

Las tres defensas son pequeñas. Abre la Vista de diagrama antes de leer cifras. Desconfía de una columna de valores idénticos. Comprueba que las líneas suman el total, y cuando no lo hagan, divide la diferencia entre el número de líneas menos uno — 120.000,00 £ entre dos son 60.000,00 £, y 60.000,00 £ era el nombre de la tabla que nadie relacionó.

Y el esquema en estrella de la sección 5 es la cura entera en tres filas: pon aquello por lo que segmentas en su propia tabla, relaciona con ella las dos tablas de hechos y segmenta por esa. El modelo deja de necesitar que alguien se acuerde de qué columna es segura en las filas, que es justo la clase de conocimiento que se va de una empresa el último día de alguien.

Comparte este artículo:
Volver al Blog