Calcular el promedio acumulado del tercer año de mi selección

Un usuario Pregunto ✅

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

DIVIDIR (SUMA (TAB[MOVEMENTS]), DISTINCTCOUNT (TAB[CLIENT_ID]))

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

Hola @MCacc,

Perdón por molestarte …

Pero, ¿respondí a tu pregunta? Marque mi respuesta como solución. Muchísimas gracias.

Atentamente,
Eyelyn Qin

Hola @MCacc,

Según tengo entendido, desea el resultado esperado como se muestra a continuación, ¿verdad?

12.24.3.1.PNG

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

SU18_powerbi_badge

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:

var primer año = AÑO (MIN (CAL[YEAR]))
var SECONDYEAR = AÑO (MIN (CAL[YEAR])) + 1
var TERCER AÑO = AÑO (MIN (CAL[ANNO])) + 2
VAR SELECETIONYEAR = SELECTEDVALUE (CAL[YEAR])

var simple_avg = CALCULATE (DIVIDE (SUM (TAB[MOV]), DISTINCTCOUNT (TAB[TRANSACTION_NUMBER]), 0))

var avgafterthirdyear = CALCULATE (DIVIDE (SUM (TAB[MOV]), DISTINCTCOUNT (TAB[TRANSACTION_NUMBER]), 0), FILTRO (TABELLA, SELECETIONYEAR> = THIRDYEAR), ALLEXCEPT (CAL, CAL[YEAR]))
RETURN IF (SELECETIONYEAR = primer año || SELECETIONYEAR = SECONDYEAR, simpleavg, if (SELECETIONYEAR> = THIRDYEAR, simple_avg + avgafterthirdyear, BLANK ()))
Pero no funciona porque devuelve el valor promedio de la selección actual

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

SU18_powerbi_badge

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

SU18_powerbi_badge

MCacc

En respuesta a Alba

Oye Aib

Deja un comentario

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