Problema con la fórmula de promedio ponderado

Un usuario Pregunto ✅

Capoccetta

Estimados,

Soy nuevo en Power BI y tengo un problema para calcular un promedio ponderado basado en el total de una columna.

Adjunto un ejemplo simplificado para mi PBIX.

Como puede ver, tengo dos tablas, una tabla maestra y una tabla de resumen, con pocos campos calculados a partir de la tabla maestra. En la tabla resumida, tengo un campo de mes de conductor que representa la clave de las tablas, un campo que representa la suma de ventas para el conductor y un número de recuento distinto de entregas para el conductor.

En el informe tengo un filtro de página donde puedo filtrar el nombre del conductor.

Quiero calcular un promedio ponderado, estoy probando con diferentes fórmulas pero todas me dan un resultado incorrecto porque todos los cálculos se realizan sobre el número total de la entrega, 21 y no solo sobre la entrega filtrada…

La fórmula utilizada para SalesxDeliveries / TotalDeliveries es

SalesxDeliveries / TotalDeliveries = (Compatti[Delivery]* Compatti[Sales]) / (SUM (Compatti[Delivery]))

Lo intento también con filtro pero sin resultados.

Este es el total de registros

Img1.png

Esto es registros filtrados

Img2.png

En la última columna, la fórmula considera el número total de entregas 21 en lugar de filtrar dinámicamente 18

Ese es el resultado que espero

Img3.png

Por favor, dame algunos consejos …

Gracias

Capoccetta

En respuesta a Vvelarde

con esta fórmula funciona bien

SalesxDeliveries / TotalDeliveries =
DIVIDIR (
SUMX (Compatti, Compatti[Delivery] * Compatti[Sales] ),
CALCULAR (SUMA (Compatti[Delivery] ), TODOS SELECCIONADOS (Compatti))
)

Gracias a todos….

@Capoccetta,

Cree una medida usando DAX a continuación.

Medida = SUMA (Compatti[Sales]) * SUM (Compatti[Delivery]) / CALCULAR (SUM (Compatti[Delivery]), TODOS SELECCIONADOS (Compatti[Driver]))

1.JPG
Saludos,
Lydia

Capoccetta

En respuesta a v-yuezhe-msft

Este es mi PBIX https://1drv.ms/u/s!AqfsJnD6F-2ggdhEmH0ydA3nfpuHLQ

Es la misma fórmula que estoy comprobando

Medida1 = SUMA (Compatti[Sales]) * SUM (Compatti[Delivery]) / CALCULAR (SUMA (Compatti[Delivery]); TODOS SELECCIONADOS (Compatti[DriverMonth]))

pero este es mi resultado … no es correcto …

Img4.png

En respuesta a Capoccetta

@Capoccetta,

Debería crear las siguientes medidas en la tabla sheet1 y crear una nueva tabla visual como sigue.

SalesxDelivery = SUM (Compatti[Sales]) * SUM (Compatti[Delivery])
AllDelivery = CALCULATE (SUM (Compatti[Delivery]), TODOS SELECCIONADOS (Hoja1[Driver]), TODOS (Hoja1[DriverMonth]))
Medida esperada = [SalesxDelivery]/[AllDelivery]

1.JPG

Saludos,
Lydia

Capoccetta

En respuesta a v-yuezhe-msft

@ v-yuezhe-msft

Tks Lydia por su atención …

Solo una cosa … La medida funciona correctamente pero el total de la columna es incorrecto.

ManNVSM

En respuesta a Capoccetta

Estimado @Capoccetta,

¿Puedes volver a compartir tu pbix? Haré un formulario y lo comprobaré.

Saludos,

ManNVSM

Capoccetta

En respuesta a ManNVSM

@ManNVSM

Este último pbix modificado

https://1drv.ms/u/s!AqfsJnD6F-2ggdhFCiMqkwzPACHG-w

Gracias

ManNVSM

En respuesta a Capoccetta

Estimado @Capoccetta,

Me doy cuenta de que tu Formular no es bueno.

SalesxDeliveries / TotalDeliveries = (Compatti[Delivery]* Compatti[Sales]) / (SUM (Compatti[Delivery]))

Con GrandTotal, su valor será = Ventas.

Ejemplo: (A * B) / A = B. Porque A / A = 1.

Entonces (1 * B) = B. En este caso, A = Entrega, B = Venta. ¿Derecha?

Puedes ver una imagen a continuación. Entonces, puede darme más información sobre su solicitud, tal vez encontremos otra forma de resolverla.

image.png

Capoccetta

En respuesta a ManNVSM

Estimado @ManNVSM

Está todo correcto … yo pensaba lo mismo

El objetivo es calcular para cada elemento el promedio ponderado y tener un total correcto de la columna relativa.

ManNVSM

En respuesta a Capoccetta

Estimado @Capoccetta,

Sí.

Ahora Table no puede dejarnos elegir lo que será para Grandtotal. Tal vez la suma de los detalles o tal vez de Formular (predeterminado). Espero que llegue pronto por Idea.

Si necesita ayuda en el otro tema, simplemente etiquete mi cuenta en su tema 🙂

Por cierto, si cree que la respuesta es la solución, elíjala para cerrar este tema.

Saludos,

ManNVSM.

Capoccetta

En respuesta a ManNVSM

Estimado @ManNVSM

la solución es tener la fórmula de medida esperada y los mismos resultados en una fórmula de columna, una o más columnas.

Una columna con resultados detallados y otra columna con un total de registros seleccionados que puedo usar como gran total …

Lo estoy revisando pero ahora sin resultados …

En su opinión basada en su experiencia, ¿es posible?

Vvelarde

En respuesta a Capoccetta

@Capoccetta

Hola, prueba esto:

Modificar:

AllDelivery =
CALCULATE (
    SUM ( Compatti[Delivery] ),
    ALLSELECTED ( Sheet1[Driver] ),
    ALLSELECTED ( Sheet1[DriverMonth] )
)

Y crea una nueva medida

ExpectedMeasure VV =
IF (
    HASONEVALUE ( Sheet1[Driver] ),
    [ExpectedMeasure],
    SUMX (
        SUMMARIZE (
            Sheet1,
            Sheet1[Driver],
            Sheet1[DriverMonth],
            "AA"; [SalesxDelivery] / [AllDelivery]
        ),
        [AA]
    )
)

Puede cambiar el AA por otro nombre y reemplazar la medida esperada con el código.

Img1.png

Saludos

Víctor

Lima, Perú

Capoccetta

En respuesta a Vvelarde

con esta fórmula funciona bien

SalesxDeliveries / TotalDeliveries =
DIVIDIR (
SUMX (Compatti, Compatti[Delivery] * Compatti[Sales] ),
CALCULAR (SUMA (Compatti[Delivery] ), TODOS SELECCIONADOS (Compatti))
)

Gracias a todos….

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *