Traducir el cálculo SMAPE de Tableau a Power BI

Un usuario Pregunto ✅

Krib

Intento que este cálculo en Tableau funcione en BI, pero estoy estancado por un tiempo. En Tableau es como:

{INCLUDE  [Product Key]:  2*ABS(SUM([Constr Demand])-SUM([Actual Qty]))/SUM(ABS([Constr Demand])+ABS([Actual Qty]))}

Lo que he probado son muchas soluciones DAX diferentes, pero no obtengo el valor correcto. Si los divido, obtengo los mismos valores en ambas partes, pero Tableau suma cada fila, luego promedia el valor, y eso es lo que me arruina.
Mi última prueba no devuelve muchos valores, pero la lógica es algo correcta en comparación con el cuadro.

#SMAPE Prod = 
    AVERAGEX(
        SUMMARIZE(
            df_backtest_day,df_backtest_day[product_key],
            "Sum_2Times",
            2*ABS(
                SUM(df_backtest_day[constr_demand])-SUM(df_backtest_day[actual_qty])
            )
            /
            ABS(
                SUMX(df_backtest_day,df_backtest_day[constr_demand]+df_backtest_day[actual_qty]
                )
            )
        ),[Sum_2Times]
    )

Fowmy

En respuesta a Krib

@Krib

Pruebe la siguiente fórmula y reemplace el nombre y la columna de su tabla. Hice asunción de tu tabla

Fowmy_0-1597590129637.png

SMAPE Prod = 
AVERAGEX(
    SUMMARIZE(
        'Table',
        'Table'[key],            
        "Sum_2Times",            
        DIVIDE(            
                2*ABS(SUM('Table'[demand])-SUM('Table'[actual])),            		  
                    ABS(
                    SUMX(
                        'Table',
                        'Table'[demand]+'Table'[actual]
                    )
                )
        )
    ),
    [Sum_2Times]
)

________________________

¿Respondí tu pregunta? Marque esta publicación como una solución, ¡esto ayudará a otros !.

Haga clic en el icono de pulgar hacia arriba si le gusta esta respuesta 🙂

YouTube, LinkedIn

Fowmy

@Krib

Reemplazar SUMMARIZE con SUMMARIZECOLUMNS

#SMAPE Prod = 
    AVERAGEX(
        SUMMARIZECOLUMNS(
            df_backtest_day[product_key],
            "Sum_2Times",
            2*ABS(
                SUM(df_backtest_day[constr_demand])-SUM(df_backtest_day[actual_qty])
            )
            /
            ABS(
                SUMX(df_backtest_day,df_backtest_day[constr_demand]+df_backtest_day[actual_qty]
                )
            )
        ),[Sum_2Times]
    )

________________________

¿Respondí tu pregunta? Marque esta publicación como una solución, ¡esto ayudará a otros !.

Haga clic en el icono de pulgar hacia arriba si le gusta esta respuesta 🙂

YouTube, LinkedIn

Krib

En respuesta a Fowmy

Intenté y no funcionó. Supongo que la última parte es la parte incorrecta … «sumx (…»

Fowmy

En respuesta a Krib

@Krib

Pruebe la siguiente fórmula y reemplace el nombre y la columna de su tabla. Hice asunción de tu tabla

Fowmy_0-1597590129637.png

SMAPE Prod = 
AVERAGEX(
    SUMMARIZE(
        'Table',
        'Table'[key],            
        "Sum_2Times",            
        DIVIDE(            
                2*ABS(SUM('Table'[demand])-SUM('Table'[actual])),            		  
                    ABS(
                    SUMX(
                        'Table',
                        'Table'[demand]+'Table'[actual]
                    )
                )
        )
    ),
    [Sum_2Times]
)

________________________

¿Respondí tu pregunta? Marque esta publicación como una solución, ¡esto ayudará a otros !.

Haga clic en el icono de pulgar hacia arriba si le gusta esta respuesta 🙂

YouTube, LinkedIn

Krib

En respuesta a Fowmy

genial, eso me dio las cosas correctas. ¿Puedo lanzar otra Q? si tuviera que añadir 2 parámetros para resumir, por ejemplo [product] y [date]?

Fowmy

En respuesta a Krib

@Krib

Puede agregar después de la primera columna

‘Tabla'[Product],
‘Tabla'[Date],
‘Tabla'[key],
Solo para entender, ¿qué te dice el resultado de este cálculo?

________________________

¿Respondí tu pregunta? Marque esta publicación como una solución, ¡esto ayudará a otros !.

Haga clic en el icono de pulgar hacia arriba si le gusta esta respuesta 🙂

YouTube, LinkedIn

pranit828

Hola @Krib

¿Puede explicar en términos solo en Power BI con una entrada de muestra y qué resultado espera?

Krib

En respuesta a pranit828

No es posible mostrar los datos o una muestra. Lo que obtuve en este momento es 22,2% (no como promedio) pero debería estar alrededor del 40%. La pregunta también podría ser: ¿Existe una buena solución en Power BI para obtener un promedio SMAPE al mirar un nivel de fila para un producto o varias columnas (producto y fecha)?

Deja un comentario

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