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
MCacc
Helper III
Helper III

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

Hola, tengo un problema calculando el promedio de un campo a partir del tercer año y en adelante de mi selección.

Tengo un año de filtro en mi tablero que corresponde al año de la fecha de la columna Año que 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 el segundo año (2021) de mi selección es

DIVIDE(SUM(TAB[MOVEMENTS]), DISTINCTCOUNT(TAB[CLIENT_ID]))

así que

2020: 16/2 x 4

2021 a 16/2 x 4

Para el TERCER año de mi selección (2022) debe ser el siguiente:

2022 4

2022 a 4 + 4 x 8

Es decir, 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.

ID DE CLIENTENÚMERO DE TRANSACCIÓNPRODUCT_CODEMovimientosaño
3345p1411/12/2020
1346p1411/12/2020
2347p1411/12/2020
2348p1411/12/2020
137p1411/12/2021
1348p1411/12/2021
2346p1411/12/2021
2347p1411/12/2021
137p1411/12/2022
1348p1411/12/2022
2346p1411/12/2022
4367p1411/12/2022

¿Alguna idea de cómo puedo calcular esto?

Gracias

8 REPLIES 8
v-eqin-msft
Community Support
Community Support

No @MCacc ,

Siento molestarle...

Pero, ¿respondí a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.


Saludos
Eyelyn Qin

v-eqin-msft
Community Support
Community Support

No @MCacc ,

Según mi entendimiento, usted quiere la salida esperada como se muestra a continuación, ¿verdad?

12.24.3.1.PNG

Por favor, siga estos pasos:

1. Agregue la columna Avg 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í.

Saludos
Eyelyn Qin

Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

AlB
Super User
Super User

@MCacc

Sigo confundiéndome con el tercer año, el año siguiente, el 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 debe ser el resultado esperado y la lógica para él, podría ser capaz de entender

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

Hola Aib,

esto es lo que quiero lograr:

1er año promedio 4

2o año promedio 3

3er año promedio 2,5 + 3 (2o promedio) - 5,5

4o año promedio 3 + 5,5 (2o y 3o año promedio) 8,5

5o año promedio 2 + 8,5 (2o, 3o, 4o año promedio)

El dax devuelve valores en blanco.

Además de eso, probé este dax:

var firstyear - YEAR(MIN(CAL[YEAR]))
var SECONDYEAR (AÑO(MIN(CAL[YEAR]))+1
var THIRDYEAR - Año(MIN(CAL[ANNO]))+2
VAR SELECETIONYEAR - SELECTEDVALUE(CAL[YEAR])

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

var avgafterthirdyear ?CALCULATE(DIVIDE(SUM(TAB[MOV]), DISTINCTCOUNT(TAB[NUM_RAPPORTO]),0), FILTER(TABELLA, SELECETIONYEAR >- THIRDYEAR), ALLEXCEPT(CAL,CAL[YEAR]))


DEVOLVER IF(SELECETIONYEAR ? primer año ? SELECETIONYEAR - SEGUNDO, MEDIA_SEMPLICE, if(SELECETIONYEAR >- THIRDYEAR, simple_avg + avgafterthiyear, BLANK()))
Pero no funciona porque devuelve el valor promedio de la selección actual
MCacc
Helper III
Helper III

Hola Abi,

Lo siento por mi error, es 16/4 porque 16 es la suma de mis movimientos de columna y 4 es mi cuenta distinta de mi client_id. Así que el valor de mi promedio es 4.

Ya he probado algo similar a su fórmula dax, por desgracia, la suma en el valor devuelto se calcula cada año por lo que se repite dos veces.

Así que si 2020 es 4 y 2021 es 5 voy a tener 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 sólo cuando estoy en mi tercer año. Por lo tanto, si tengo 2022 a 3, la suma en el valor devuelto debe funcionar sólo con 2021 a 5 + 2022 a 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? Suma el valor de este cuarto año (valor seleccionado), el tercer año y el segundo año...

AlB
Super User
Super User

@MCacc

Todavía no está claro.

2020: 16/2 x 4

2021 a 16/2 x 4

La primera vez que veo 16/2 es 4. Además, en 2020 hay 3 IDs de cliente diferentes

Prueba esto, puedes ajustarlo para adaptarlo exactamente a tus necesidades. Se supone una relación entre tu tabla de fechas y 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_

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

AlB
Super User
Super User

Hay @MCacc

Ok, pero ¿cuál es su "selección" para el ejemplo anterior?

¿Es lo que seleccionas en una cortadora con Year?

¿Es un año (2020) ?

¿Selecciona los 3 años (2020,21,22)?

¿Qué significa TERCER año y en adelante? ¿Qué pasaría si tuvieras años más allá de 2022?

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

Hey Aib

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.