Cálculo YOY para datos verticales definidos usando dax

Un usuario Pregunto ✅

rohit403

Hola a todos,

Necesito su consejo y ayuda para calcular el cambio porcentual interanual (año tras año). Los datos, así como el resultado requerido, están en el siguiente formato. También tengo una tabla de fechas, cuya captura de pantalla también he proporcionado. Debo mencionar que pude hacer esto insertando una columna en la vista de tabla de Power BI con la ayuda proporcionada desde este foro. Sin embargo, como mi proyecto está en un servidor, no puedo editar la tabla y puedo crear una nueva medida. Sin embargo, estoy luchando con la fórmula DAX para lo mismo. Por favor ayuda:

Datos

Cliente KPI unidad Período Valor
Verizon Los ingresos totales Millones de dólares 1T / 2016 29029.95849
Verizon Los ingresos totales Millones de dólares Q1 / 2017 27959.3623
Verizon Capex Millones de dólares 1T / 2016 10029.95849
Verizon Capex Millones de dólares Q1 / 2017 8959.3623
Bharti Los ingresos totales Millones de dólares 1T / 2016 34567
Bharti Los ingresos totales Millones de dólares Q1 / 2017 33000
Bharti Capex Millones de dólares 1T / 2016 15222
Bharti Capex Millones de dólares Q1 / 2017 13655

Producción

Cliente KPI unidad Período Valor interanual%
Verizon Los ingresos totales Millones de dólares 1T / 2016 29029.95849
Verizon Los ingresos totales Millones de dólares Q1 / 2017 27959.3623 -3,7%
Verizon Capex Millones de dólares 1T / 2016 10029.95849
Verizon Capex Millones de dólares Q1 / 2017 8959.3623 -10,7%
Bharti Los ingresos totales Millones de dólares 1T / 2016 34567
Bharti Los ingresos totales Millones de dólares Q1 / 2017 33000 -4,5%
Bharti Capex Millones de dólares 1T / 2016 15222
Bharti Capex Millones de dólares Q1 / 2017 13655 -10,3%

Contenido de la tabla de fechas donde las relaciones ya están establecidas y no se pueden editar:

Fecha.JPG

Gracias,

Rohit

Hola @ rohit403,

Parece que los campos de su período no tienen valores de fecha válidos almacenados. Puede intentar utilizar la siguiente fórmula de medida si funciona para sus necesidades:

YOY =
VAR currPeriod =
    MAX ( Table[Period] )
VAR curr =
    CALCULATE (
        SUM ( Table[Value] ),
        FILTER ( ALLSELECTED ( Table ), Table[Period] = currPeriod ),
        VALUES ( Table[Customer] ),
        VALUES ( Table[KPI] )
    )
VAR prev =
    curr
        = CALCULATE (
            SUM ( Table[Value] ),
            FILTER (
                ALLSELECTED ( Table ),
                Table[Period]
                    = LEFT ( currPeriod, 3 )
                        & VALUE ( RIGHT ( currPeriod, 4 ) ) - 1
            ),
            VALUES ( Table[Customer] ),
            VALUES ( Table[KPI] )
        )
RETURN
    IF ( prev <> BLANK (), DIVIDE ( curr - prev, prev, 0 ) )

Si lo anterior no ayuda, comparta un archivo pbix con algunos datos de muestra para probar.

Saludos,

Xiaoxin Sheng

Hola @ rohit403,

Parece que los campos de su período no tienen valores de fecha válidos almacenados. Puede intentar utilizar la siguiente fórmula de medida si funciona para sus necesidades:

YOY =
VAR currPeriod =
    MAX ( Table[Period] )
VAR curr =
    CALCULATE (
        SUM ( Table[Value] ),
        FILTER ( ALLSELECTED ( Table ), Table[Period] = currPeriod ),
        VALUES ( Table[Customer] ),
        VALUES ( Table[KPI] )
    )
VAR prev =
    curr
        = CALCULATE (
            SUM ( Table[Value] ),
            FILTER (
                ALLSELECTED ( Table ),
                Table[Period]
                    = LEFT ( currPeriod, 3 )
                        & VALUE ( RIGHT ( currPeriod, 4 ) ) - 1
            ),
            VALUES ( Table[Customer] ),
            VALUES ( Table[KPI] )
        )
RETURN
    IF ( prev <> BLANK (), DIVIDE ( curr - prev, prev, 0 ) )

Si lo anterior no ayuda, comparta un archivo pbix con algunos datos de muestra para probar.

Saludos,

Xiaoxin Sheng

Deja un comentario

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