MCacc
Hola, tengo un problema al calcular el promedio de un campo a partir del TERCERA año y en adelante de mi selección.
Tengo un año de filtro en mi panel que corresponde al año de la fecha de la columna AÑO Tengo en mi tabla
Necesito calcular mi promedio de la columna. MOVIMIENTOS
Mi promedio se calcula en una medida de la siguiente manera:
Para el primer año (2020) y segundo año (2021) de mi selección es
Entonces
2020: 16/2 = 4
2021 = 16/2 = 4
Para el TERCERA año de mi selección2022) debe ser el siguiente:
2022 = 4
2022 = 4 + 4 = 8
Significado, en el TERCER año de mi selección Necesito sumar el promedio del año anterior + el promedio del tercer año y así sucesivamente.
IDENTIFICACIÓN DEL CLIENTE | NÚMERO DE TRANSACCIÓN | CÓDIGO DE PRODUCTO | MOVIMIENTOS | AÑO |
3 | 345 | p1 | 4 | 12/11/2020 |
1 | 346 | p1 | 4 | 12/11/2020 |
2 | 347 | p1 | 4 | 12/11/2020 |
2 | 348 | p1 | 4 | 12/11/2020 |
1 | 37 | p1 | 4 | 12/11/2021 |
1 | 348 | p1 | 4 | 12/11/2021 |
2 | 346 | p1 | 4 | 12/11/2021 |
2 | 347 | p1 | 4 | 12/11/2021 |
1 | 37 | p1 | 4 | 12/11/2022 |
1 | 348 | p1 | 4 | 12/11/2022 |
2 | 346 | p1 | 4 | 12/11/2022 |
4 | 367 | p1 | 4 | 12/11/2022 |
¿Alguna idea de cómo puedo calcular esto?
Gracias
Eyelyn9
Hola @MCacc,
Perdón por molestarte …
Pero, ¿respondí a tu pregunta? Marque mi respuesta como solución. Muchísimas gracias.
Atentamente,
Eyelyn Qin
Eyelyn9
Hola @MCacc,
Según tengo entendido, desea el resultado esperado como se muestra a continuación, ¿verdad?
Siga estos pasos:
1. Agregue la columna Promedio en la tabla original.
Avg =
CALCULATE (
DIVIDE ( SUM ( 'Table'[MOVEMENTS] ), DISTINCTCOUNT ( 'Table'[CLIENT ID] ) ),
ALLEXCEPT ( 'Table', 'Table'[YEAR].[Year] )
)
2. Cree una nueva tabla:
Table 2 =
DISTINCT ( SELECTCOLUMNS ( 'Table', "Year", YEAR ( [YEAR] ) ) )
3. Agregue algunas columnas necesarias:
Rank =
RANKX ( ALL ( 'Table 2' ), [Year],, ASC, DENSE )
Avg =
LOOKUPVALUE ( 'Table'[Avg], 'Table'[YEAR].[Year], [Year] )
Result =
IF (
[Rank] >= 3,
CALCULATE (
SUM ( 'Table 2'[Avg] ),
FILTER (
'Table 2',
'Table 2'[Rank] > 1
&& 'Table 2'[Rank] <= EARLIER ( 'Table 2'[Rank] )
)
),
[Avg]
)
Por favor, eche un vistazo al archivo pbix aquí.
Atentamente,
Eyelyn Qin
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Alba
@MCacc
Sigo confundiéndome mucho con el tercer año, cuarto año, año seleccionado …
Creo que el código anterior debería darte la base para llegar a donde quieres llegar. De lo contrario, si comparte un pbix simulado con el modelo simplificado y muestra allí un par de escenarios, explicando cuál debería ser el resultado esperado y la lógica para ello, es posible que pueda entender
Marque la pregunta resuelta cuando haya terminado y considere dando un pulgar hacia arriba si las publicaciones son útiles.
Contácteme en forma privada para obtener ayuda con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
MCacc
En respuesta a Alba
Hola Aib,
esto es lo que quiero lograr:
Promedio del 1er año = 4
Promedio del segundo año = 3
Promedio del 3er año = 2,5 + 3 (2do promedio) = 5,5
Promedio del cuarto año = 3 + 5,5 (promedio del segundo y tercer año) = 8,5
Promedio del quinto año = 2 + 8,5 (promedio del segundo, tercer y cuarto año) = 10,5
Su dax devuelve valores en blanco.
Además de eso, probé este dax:
MCacc
Hola abi
perdon por mi error, es 16/4 porque 16 es la suma de los movimientos de mi columna y 4 es mi recuento distinto de mi client_id. Entonces el valor de mi promedio es 4.
Ya probé algo similar a su fórmula dax, desafortunadamente, la suma en el valor de retorno se calcula cada año, por lo que se repite dos veces.
Entonces, si 2020 es 4 y 2021 es 5, tendré 4 + 5, que no es mi caso porque en 2020 debería tener 4 y en 2021 debería tener 5.
La suma debería suceder solo cuando esté en mi tercer año. Entonces, si tengo 2022 = 3, la suma en el valor de retorno debería funcionar solo con 2021 = 5 + 2022 = 3.
Me gustaría encontrar una manera de decirle a mi dax: ¿estás en tu tercer año? Ok, suma el valor de este tercer año (valor seleccionado) y el año anterior. ¿Estás en tu cuarto año? Sume el valor de este cuarto año (valor seleccionado), el tercer año y el segundo año …
Alba
@MCacc
Aún no está claro.
2020: 16/2 = 4
2021 = 16/2 = 4
La primera vez que veo 16/2 es 4. Además, en 2020 hay 3 ID de cliente diferentes
Prueba esto, puedes modificarlo para adaptarlo exactamente a tus necesidades. Asume una relación entre la fecha y la tabla de hechos.
Measure =
VAR selectedYear_ =
SELECTEDVALUE ( Date[Year] )
VAR _1stYear_ = selcetedYear_ - 2
VAR _2ndYear_ = selectedYear_ - 1
VAR val1_ =
CALCULATE (
DIVIDE ( SUM ( TAB[MOVEMENTS] ), DISTINCTCOUNT ( TAB[CLIENT_ID] ) ),
Date[Year] = _1stYear
)
VAR val2_ =
CALCULATE (
DIVIDE ( SUM ( TAB[MOVEMENTS] ), DISTINCTCOUNT ( TAB[CLIENT_ID] ) ),
Date[Year] = _2ndYear
)
RETURN
val1_ + val2_
Marque la pregunta resuelta cuando haya terminado y considere dando un pulgar hacia arriba si las publicaciones son útiles.
Contácteme en forma privada para obtener ayuda con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Alba
Hola @MCacc
Bien, pero ¿cuál es su «selección» para el ejemplo anterior?
¿Es lo que selecciona en una cortadora con Year?
¿Es un año (2020)?
¿Selecciona los 3 años (2020,21,22)?
Que hace TERCERA año y en adelante ¿¿significar?? ¿Qué pasaría si tuvieras años más allá del 2022?
Marque la pregunta resuelta cuando haya terminado y considere dando un pulgar hacia arriba si las publicaciones son útiles.
Contácteme en forma privada para obtener ayuda con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
MCacc
En respuesta a Alba
Oye Aib Selecciono solo un año, no tengo selecciones múltiples.
Adelante significa que si en mi selección tengo 2023, mi medida incluirá 2021, 2022, 2023. Yo en mi selección tengo 2024, mi medida incluirá 2021, 2022, 2023, 2024.
Este período será máximo de 5 años, por lo que 2020, 2021, 2022, 2023, 2024