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
rginny_
Helper I
Helper I

Calcular el promedio desde x mes antes de una fecha determinada

Hola a todos

Tengo dos imágenes de tarjetas y un ajuste de salida "después" en mi informe. Cuando establece la segmentación de fecha en un día determinado, una de las tarjetas muestra el promedio mensual de los usuarios totales antes de la fecha seleccionada y la otra tarjeta muestra el promedio mensual de los usuarios totales desde la fecha seleccionada.

La medida "desde" tiene este aspecto:

TUAvg ?
AVERAGEX(
RESUMEN(dates,dates[Month]),
[Usuarios totales])
La medida "antes" tiene este aspecto:
TUAvg Antes de la estación de
CALCULATE(
AVERAGEX(
RESUMEN(dates,dates[Month]),
[Usuarios totales]),
FILTER(ALL(dates),
dates[date]<MIN(dates[date])))

Ahora estoy tratando de cambiar la medida "antes" para que sólo tome la media de la misma cantidad de tiempo que lo haría la medida "después". Así, por ejemplo, si mi segmentación de fecha se establece en 10 de septiembre de 2020, entonces mi segmentación 'después' promediará el total de usuarios de 3 meses hasta la fecha de hoy (septiembre <10 septiembre en adelante>, octubre, noviembre - 68 días). En este caso, me gustaría que mi cortadora antes sólo promediar el total de usuarios de 3 meses antes del 10 de septiembre (septiembre <antes del 10 de septiembre>, agosto, julio <4 Juls en adelante> - 68 días) en lugar de promediar todos los meses anteriores al 10 de septiembre.

Esencialmente, me gustaría que el promedio 'antes' siempre se basa en la misma cantidad de tiempo que el promedio posterior, que es Fecha de hoy - Fecha filtrada.

Espero que lo haya explicado bien - No creo que sea demasiado complejo, pero no puedo averiguar cómo hacerlo. ¡Muchas gracias por cualquier ayuda de antemano!

1 ACCEPTED SOLUTION
v-alq-msft
Community Support
Community Support

Hola, @rginny_

Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

Mesa:

e1.png

Calendario (una tabla calculada):

Calendar = CALENDAR(DATE(2019,1,1),DATE(2020,12,31))

No hay ninguna relación entre tablas. Puede crear dos medidas como se indica a continuación.

Before Measure= 
var selecteddate = SELECTEDVALUE('Calendar'[Date])
var diff = TODAY()-selecteddate
var beforedate = selecteddate-diff
return
AVERAGEX(
    FILTER(
        ALL('Table'),
        [Date]>=beforedate&&
        [Date]<=selecteddate
    ),
    [Value]
)
Since Measure = 
var selecteddate = SELECTEDVALUE('Calendar'[Date])
return
AVERAGEX(
    FILTER(
        ALL('Table'),
        [Date]>=selecteddate&&
        [Date]<=TODAY()
    ),
    [Value]
)

Resultado:

e2.png

Saludos

Allan

Si este post ayuda,entonces 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
v-alq-msft
Community Support
Community Support

Hola, @rginny_

Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

Mesa:

e1.png

Calendario (una tabla calculada):

Calendar = CALENDAR(DATE(2019,1,1),DATE(2020,12,31))

No hay ninguna relación entre tablas. Puede crear dos medidas como se indica a continuación.

Before Measure= 
var selecteddate = SELECTEDVALUE('Calendar'[Date])
var diff = TODAY()-selecteddate
var beforedate = selecteddate-diff
return
AVERAGEX(
    FILTER(
        ALL('Table'),
        [Date]>=beforedate&&
        [Date]<=selecteddate
    ),
    [Value]
)
Since Measure = 
var selecteddate = SELECTEDVALUE('Calendar'[Date])
return
AVERAGEX(
    FILTER(
        ALL('Table'),
        [Date]>=selecteddate&&
        [Date]<=TODAY()
    ),
    [Value]
)

Resultado:

e2.png

Saludos

Allan

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

CNENFRNL
Community Champion
Community Champion

Hola, @rginny_ , se deduce de su descripción que Dates[Date] se extiende desde 2020/7/4 hasta hoy (2020/11/17), ¿no? Es posible que desee probar una medida aprovechando alguna función de inteligencia de tiempo en DAX,

TUAvg Before =
VAR __period =
    DATESBETWEEN (
        Dates[Date],
        STARTOFMONTH ( DATEADD ( Dates[Date], -2, MONTH ) ),
        MAX ( Dates[Date] ) - 1
    )
RETURN
    AVERAGEX ( [total users], __period )

y en consecuencia,

TUAvg Since =
VAR __period =
    DATESBETWEEN (
        Dates[Date],
        MAX ( Dates[Date] ) + 1,
        ENDOFMONTH ( DATEADD ( Dates[Date], 2, MONTH ) )
    )
RETURN
    AVERAGEX ( [total users], __period )

Screenshot 2020-11-17 214434.png


Thanks to the great efforts by MS engineers to simplify syntax of DAX! Most beginners are SUCCESSFULLY MISLED to think that they could easily master DAX; but it turns out that the intricacy of the most frequently used RANKX() is still way beyond their comprehension!

DAX is simple, but NOT EASY!

NamishB
Post Prodigy
Post Prodigy

HI @rginny_ - ¿Puede publicar algunos datos para explicar más?

y también cuál es su resultado esperado?

También pruebe una semana menor en su medida y compare los resultados:

TUAvg Before =
CALCULATE (
    AVERAGEX ( SUMMARIZE ( dates, dates[Month] ), [Total Users] ),
    FILTER (dates, dates[date] < MIN ( dates[date] ) )
)

Si esto no resuelve el propósito, por favor publique datos.

Salud

-Namish B

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.