Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo utilizar la agregación en columnas coalescentes?

Estoy tratando de usar la función COALESCE para completar los valores que faltan en una columna.

Hacer eso fue simple, pero cuando intento usar los valores de esa nueva medida, las agregaciones muestran valores como si fuera la columna original, por lo que debo estar haciendo algo mal.

Preparé estos datos de muestra (sample_data.pbix) que tienen estas tablas:

Tabla A:

ramasaurio_1-1726463628688.png

Tabla B:

ramasaurio_6-1726464050043.png

y una tercera tabla que utilizo para enlazar ambas así:

ramasaurio_3-1726463716808.png

La medida que he creado se llama "coalesce_measure":

ramasaurio_5-1726464032997.png

Y como puede ver, los valores de cada día son correctos, pero el total sigue siendo 11207 como si no se hubiera agregado el valor 9084. Intenté usar una tarjeta para mostrar la suma de la columna y es el mismo valor que aparece en el total de la matriz.

¿Qué debo hacer para poder usar la suma correcta? (14249)
¿Qué otras consideraciones debo tener al tratar con esta función? (Estoy asumiendo aquí que cualquier otra agregación que me gustaría hacer tendrá que ser tratada de una manera similar a la suma)
Muchas gracias de antemano.

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Me alegro de haber ayudado 🙂

Claro, aquí hay una explicación:

Un punto general importante: dentro de un objeto visual, el cálculo de una medida en el nivel "total" es independiente del cálculo de la misma medida en los niveles de "fila" individuales.

La medida original era la siguiente:

coalesce_measure =
COALESCE (
    SUM ( 'Table A'[value_A] ),
    SUM ( 'Table_B'[value_B] )
)

Esta medida

  1. Calcula la suma de value_A
  2. Calcula la suma de value_B
  3. Devuelve el primer valor que no está en blanco de estos dos valores.

Para fechas individuales, esto le dio el resultado esperado porque la granularidad de 'Tabla A' y 'Tabla B' resulta ser la fecha.

Sin embargo, a nivel total, ambas sumas no están en blanco porque, aunque pueden faltar fechas, existe al menos una fecha tanto en la 'Tabla A' como en la 'Tabla B'. Por lo tanto, se devuelve la suma de value_A.

En otras palabras, a nivel total,

  1. Suma de value_A = 11.207
  2. Suma de value_B = 9.759
  3. COALESCENCIAS (11.207, 9.759) = 11.207

La medida actualizada evita este problema mediante la iteración de una tabla de valores de fecha de la tabla de fechas mediante SUMX.

Para cada fecha, se calculan las sumas y se fusionan, luego se suman los resultados de cada fecha.

coalesce_measure by date = 
SUMX (
    VALUES ( dates[date] ), -- dates would also work
    COALESCE( [Value A Sum], [Value B Sum] )
)

Para una fecha individual, los resultados son los mismos que los de la medida original.

Pero para varias fechas, el resultado ahora es correcto porque COALESCE se aplica por fecha.

Aquí hay un artículo relevante que recomendaría leer para comprender los iteradores y el contexto de las filas:

https://www.sqlbi.com/articles/row-context-in-dax/

¡Espero que eso ayude! 🙂

Saludos

Syndicate_Admin
Administrator
Administrator

Hola @ramasaurio

Si la lógica es fusionarse en el nivel de fecha, escribiría las medidas de la siguiente manera:

Value A Sum = 
SUM ( 'Table A'[value_A] )
Value B Sum = 
SUM ( Table_B[value_B] )
coalesce_measure by date = 
SUMX (
    VALUES ( dates[date] ), -- dates would also work
    COALESCE( [Value A Sum], [Value B Sum] )
)

¿Te funciona a ti?

ramasaurio_0-1726488980910.png

Esto funcionó perfectamente.

Creo que entiendo por qué funciona esta solución, estoy haciendo una tabla basada en los valores de la columna "fecha" de las fechas de la tabla y luego calculando el valor de cada fila fusionando las medidas de los valores A y B. Pero, ¿puedo preguntar por qué mi enfoque inicial no funciona? Soy bastante nuevo en Power BI, por lo que probablemente me falte algún concepto básico sobre cómo funcionan las medidas.

¡Gracias!

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors