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
Syndicate_Admin
Administrator
Administrator

Promedio por ID utilizando datos de los últimos 3 años

19 Tengo una tabla con datos por ID y ventas por mes Así

Rick_ferreira_0-1624445931431.png

Necesito crear una columna calculada con promedio por ID por mes para cada id como este

Rick_ferreira_1-1624445992569.png

Usé eso, pero parece una dependencia circular.

Average_last_ 3_year =

VAR year_ref =

AÑO ( T_[fecha])

VAR month_ref =

MES ( T_[fecha])

devolución

SI (

year_ref - 2

>= MINX ( TODOS ( T_[fecha]), AÑO ( T_[fecha]) ),

PROMEDIOX (

FILTRO (

ALLEXCEPT( T_, T[Id]),

AÑO (( T_[fecha]) ) < year_ref

&& AÑO (( T_[fecha]) >= year_ref - 3

&& MES (( T_[fecha]) ) = month_ref

),

T_Actual_list_graph[Valor]

)

)

¿Qué está mal(**

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @Rick_ferreira ,

Necesita cambiar un poco la fórmula de la columna:

Column =
VAR currYear = YEAR ( T[Date] )
VAR currMonth = MONTH ( T[Date] )
VAR currID = T[Id]
RETURN
    IF (
        currYear - 2 > MINX ( ALL ( T ), YEAR ( T[Date] ) ),
        AVERAGEX (
            FILTER (
                T,
                T[Id] = currID
                    && YEAR ( T[Date] ) < currYear
                    && YEAR ( T[Date] ) >= currYear - 3
                    && MONTH ( T[Date] ) = currMonth
            ),
            T[Value]
        )
    )

Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución ✔️para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

No @Rick_ferreira ,

Necesita cambiar un poco la fórmula de la columna:

Column =
VAR currYear = YEAR ( T[Date] )
VAR currMonth = MONTH ( T[Date] )
VAR currID = T[Id]
RETURN
    IF (
        currYear - 2 > MINX ( ALL ( T ), YEAR ( T[Date] ) ),
        AVERAGEX (
            FILTER (
                T,
                T[Id] = currID
                    && YEAR ( T[Date] ) < currYear
                    && YEAR ( T[Date] ) >= currYear - 3
                    && MONTH ( T[Date] ) = currMonth
            ),
            T[Value]
        )
    )

Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución ✔️para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

@Rick_ferreira , Pruebe una nueva columna como

Nueva columna =

var _month = mes([Fecha])

var _id = [id]

devolución

averagex(filter(Tabla, [id]=_id &&month([Fecha]) =_month ), [valor])

Necesito calcular el promedio usando siempre datos de los últimos 3 años.

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.