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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Promedio rodante de los últimos 6 meses

Queridos todos,

Tengo este escenario simple donde necesito calcular un promedio de 6 meses para un conjunto de datos determinado, por debajo de los detalles.

Ejemplo de conjunto de datos:

La columna Year_Month, en el origen de datos solo tenía año y mes, y la convertí en Fecha/Hora de tipo de datos n Power BI, por lo tanto, muestra Fecha como 1a fecha de ese mes.

No quiero ir al nivel de fecha en el origen de datos, ya que serán millones de filas de datos.

Calendario Year_MonthMesConsultaUsuario distinto
1/12/201912Dsa10
1/01/20201Dsa1
1/02/20202Dsa20
1/03/20203Dsa10
1/04/20204Dsa30
1/05/20205Dsa40
1/12/201912Ventas23
1/01/20201Ventas21
1/02/20202Ventas20
1/03/20203Ventas9
1/04/20204Ventas8
1/05/20205Ventas10
1/12/201912Acción33
1/01/20201Acción41
1/02/20202Acción39
1/03/20203Acción21
1/04/20204Acción20
1/05/20205Acción11


Fórmula DAX utilizada:

He creado una tabla Date en Power BI y la he referido en la función DATESINPERIOD a continuación.

DIVIDE(CALCULAR (
SUM(Rolling_Average_Example[Usuario distinto]),
DATESINPERIOD ( 'Date Table'[Date], MAX(Rolling_Average_Example[Calendar Year_Month]) , -6, mes )
),6,0)

Resultado esperado:

Para el mes de mayo, el promedio de 6 meses móvil debe ser suma de los usuarios en los últimos 6 meses/6 a 306/6 a 51.
Pero el DAX anterior muestra 10, que es SUM de los usuarios en MAY dividido por 6 (61/6-10), que está mal.

Si usted puede guiarme donde estoy equivocado y cómo solucionar esto en un escenario dado.

1 ACCEPTED SOLUTION
v-gizhi-msft
Community Support
Community Support

Hola

Cree primero un parámetro What If.

A continuación, pruebe esta medida:

Measure = 
AVERAGEX (
    DISTINCT ( 'Table'[Calendar Year_Month] ),
    CALCULATE (
        IF (
            YEAR ( MAX ( 'Table'[Calendar Year_Month] ) ) = YEAR ( TODAY () )
                && MONTH ( MAX ( 'Table'[Calendar Year_Month] ) ) = MONTH ( TODAY () ),
            0,
            IF (
                MONTH ( TODAY () ) - Previous[Previous Value] <= 0,
                CALCULATE (
                    SUM ( 'Table'[Distinct User] ),
                    FILTER (
                        'Table',
                        'Table'[Calendar Year_Month] < DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ), 1 )
                            && 'Table'[Calendar Year_Month]
                                >= DATE ( YEAR ( TODAY () ) - 1, 12
                                    - ABS ( MONTH ( TODAY () ) - Previous[Previous Value] ), 1 )
                    )
                ),
                CALCULATE (
                    SUM ( 'Table'[Distinct User] ),
                    FILTER (
                        'Table',
                        'Table'[Calendar Year_Month] < DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ), 1 )
                            && 'Table'[Calendar Year_Month]
                                >= DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ) - Previous[Previous Value], 1 )
                    )
                )
            )
        )
    )
)

Cuando se selecciona un valor en la segmentación de datos, el resultado muestra:

15.PNG

Vea mi archivo pbix adjunto.

Saludos

Giotto

View solution in original post

5 REPLIES 5
v-gizhi-msft
Community Support
Community Support

Hola

Cree primero un parámetro What If.

A continuación, pruebe esta medida:

Measure = 
AVERAGEX (
    DISTINCT ( 'Table'[Calendar Year_Month] ),
    CALCULATE (
        IF (
            YEAR ( MAX ( 'Table'[Calendar Year_Month] ) ) = YEAR ( TODAY () )
                && MONTH ( MAX ( 'Table'[Calendar Year_Month] ) ) = MONTH ( TODAY () ),
            0,
            IF (
                MONTH ( TODAY () ) - Previous[Previous Value] <= 0,
                CALCULATE (
                    SUM ( 'Table'[Distinct User] ),
                    FILTER (
                        'Table',
                        'Table'[Calendar Year_Month] < DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ), 1 )
                            && 'Table'[Calendar Year_Month]
                                >= DATE ( YEAR ( TODAY () ) - 1, 12
                                    - ABS ( MONTH ( TODAY () ) - Previous[Previous Value] ), 1 )
                    )
                ),
                CALCULATE (
                    SUM ( 'Table'[Distinct User] ),
                    FILTER (
                        'Table',
                        'Table'[Calendar Year_Month] < DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ), 1 )
                            && 'Table'[Calendar Year_Month]
                                >= DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ) - Previous[Previous Value], 1 )
                    )
                )
            )
        )
    )
)

Cuando se selecciona un valor en la segmentación de datos, el resultado muestra:

15.PNG

Vea mi archivo pbix adjunto.

Saludos

Giotto

amitchandak
Super User
Super User

@Vini875 , encuentre el pbix adjunto después de la firma. Estoy recibiendo 50.

Anonymous
Not applicable

@amitchandak Gracias por su respuesta, los datos de muestra que he publicado están en formato dd / mm / aaaa, por lo que en realidad es el cuenta de usuario para diferentes meses del año 2019 y 2020, lo siento debería haber sido claro con el formato.

Captura de pantalla adjunta comparando cómo se ven los datos de mi lado y lo que pude ver en el archivo pbix compartido por usted (lado izquierdo son datos de mi lado)

Average_Comparison rodante

@Vini875 , ahora estoy recibiendo 60. ¿Qué no debería estar ahí en 6 meses?

Archivo adjunto después de la firma

Anonymous
Not applicable

@amitchandak , Basado en el conjunto de datos que compartí, quiero calcular el promedio de 6 meses rodante, tomé mayo como ejemplo, en la publicación inicial lo que es el valor esperado de la rodadura 6 meses promedio en comparación con lo que está sucediendo ahora.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.