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.
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_Month | Mes | Consulta | Usuario distinto |
1/12/2019 | 12 | Dsa | 10 |
1/01/2020 | 1 | Dsa | 1 |
1/02/2020 | 2 | Dsa | 20 |
1/03/2020 | 3 | Dsa | 10 |
1/04/2020 | 4 | Dsa | 30 |
1/05/2020 | 5 | Dsa | 40 |
1/12/2019 | 12 | Ventas | 23 |
1/01/2020 | 1 | Ventas | 21 |
1/02/2020 | 2 | Ventas | 20 |
1/03/2020 | 3 | Ventas | 9 |
1/04/2020 | 4 | Ventas | 8 |
1/05/2020 | 5 | Ventas | 10 |
1/12/2019 | 12 | Acción | 33 |
1/01/2020 | 1 | Acción | 41 |
1/02/2020 | 2 | Acción | 39 |
1/03/2020 | 3 | Acción | 21 |
1/04/2020 | 4 | Acción | 20 |
1/05/2020 | 5 | Acción | 11 |
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.
Solved! Go to Solution.
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:
Vea mi archivo pbix adjunto.
Saludos
Giotto
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:
Vea mi archivo pbix adjunto.
Saludos
Giotto
@Vini875 , encuentre el pbix adjunto después de la firma. Estoy recibiendo 50.
@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)
@Vini875 , ahora estoy recibiendo 60. ¿Qué no debería estar ahí en 6 meses?
Archivo adjunto después de la firma
@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.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |