Cálculo de promedio ponderado

Un usuario Pregunto ✅

Anónimo

¡Hola, chicos!

Estoy tratando de formular un promedio ponderado para los datos de un producto. Tengo 4k filas de diferentes IDs divididos por 9 categorías (prod1 a prod9), cada una con un valor de tiempo.

Necesito un promedio ponderado del tiempo usando el número de identificaciones en cada categoría como el peso.

Categorías

categorias.png

Valores de tiempo

valores.png

littlemojopuppy

En respuesta a littlemojopuppy

Estoy trabajando con mi suposición y se me ocurrió esto …

Weighted Average Product Time = 
    VAR AllProducts = 
        CALCULATETABLE(
            VALUES(Products[Product]),
            ALL(Products)
        )
    VAR	TotalProductCount =
	    CALCULATE(
		    [Product Count],
    		ALL(Products)
	    )
    RETURN 

    DIVIDE(
        SUMX(
            AllProducts,
            [Product Count] * [Total Product Time]
        ),
        TotalProductCount,
        BLANK()
    )

Aquí están los resultados

littlemojopuppy_0-1610065856889.png

¡Espero que esto ayude! 🙂

Hola, @matheussilva

¿La respuesta de Littlemojopuppy te ha ayudado a resolver tu problema?

¿Le gustaría marcar la respuesta de littlemojopuppy como una solución para que otros puedan aprender de ella también?

Gracias de antemano!

Cómo obtener respuestas a su pregunta rápidamente

Saludos

Equipo de apoyo a la comunidad _Robert Qin

Si este post ayudaentonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

CNENFRNL

@matheussilva, asumo que la lógica del promedio ponderado deseado es así

(total time of each product) * (occurrence of each product)/(total count of all products)

take Product1 for example:
(43.8+38.9+40.4+30.2)*(4/20)
Weighted Avg = 
VAR __t = COUNTROWS ( Table1 )
RETURN
    SUMX (
        DISTINCT ( Table1[Product] ),
        CALCULATE ( SUM ( Table1[Time] ) * COUNTROWS ( Table1 ) ) / __t
    )

Captura de pantalla 2021-01-08 011140.png

por cierto, fórmula de matriz de Excel, nuestro oldie pero goodie, hace el truco con facilidad,

=SUMPRODUCT(Table1[Time], COUNTIF(Table1[Product],Table1[Product]))/ROWS(Table1)

Untitled.png

littlemojopuppy

En respuesta a CNENFRNL

@CNENFRNL ¿No ofrecí una solución similar hace horas ???

littlemojopuppy

Hola @matheussilva puede proporcionar algunos datos de muestra para trabajar?

Anónimo

En respuesta a littlemojopuppy

Hola, @ littlemojopuppy, gracias por responder.

Producto Hora
PROD1 43,8
PROD1 38,9
PROD1 40,4
PROD1 30,2
PROD2 38,3
PROD2 28,7
PROD2 36,3
PROD3 27,5
PROD3 28,4
PROD4 36,6
PROD4 37,9
PROD5 39,8
PROD6 40,5
PROD6 36,7
PROD7 37,3
PROD7 23,8
PROD8 37,2
PROD9 32,5
PROD9 32,1
PROD9 43,9

Espero que ayude. Cada peso de categoría es el% de las ocorrences

¡Gracias de nuevo!

Ashish_Mathur

En respuesta a Anónimo

Hola

Aprender estas medidas:

Tiempo total: SUM (Datos[Time])
Recuento de productos: COUNTROWS (Datos)
Medida 2 – SUMX (VALORES (Datos[Product]),[Tiempo total]*[Recuento de productos]) /[Recuento de productos]
Espero que esto ayude.
Untitled.png

littlemojopuppy

En respuesta a Ashish_Mathur

@Ashish_Mathur no sólo ofrece una solución hace cinco horas, alguien más ofreció la misma solución hace tres horas. ¿Su opinión fue justificada?

littlemojopuppy

En respuesta a Anónimo

@matheussilva una pregunta más: ¿cómo se calcula el pesaje? Asumo

(recuento total del producto) * (tiempo del producto) / (recuento total del producto)

littlemojopuppy

En respuesta a littlemojopuppy

Estoy trabajando con mi suposición y se me ocurrió esto …

Weighted Average Product Time = 
    VAR AllProducts = 
        CALCULATETABLE(
            VALUES(Products[Product]),
            ALL(Products)
        )
    VAR	TotalProductCount =
	    CALCULATE(
		    [Product Count],
    		ALL(Products)
	    )
    RETURN 

    DIVIDE(
        SUMX(
            AllProducts,
            [Product Count] * [Total Product Time]
        ),
        TotalProductCount,
        BLANK()
    )

Aquí están los resultados

littlemojopuppy_0-1610065856889.png

¡Espero que esto ayude! 🙂

Deja un comentario

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