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
lt79_Pax
Helper II
Helper II

Media móvil


Estimado representante de Power BI,
Tengo una pregunta con respecto a las medias móviles. ¿Cómo funciona el período que se va a utilizar en una media móvil cuando se filtra para la última x cantidad de días que tienen un día y un año de mes definido? ¿Cómo se mueve? Estoy revisando la siguiente función dentro del libro "Guía definitiva para Dax" que define una media móvil en los últimos 30 días. Si los últimos 30 días son 12/1/2011 a 12/31/2011, ¿cómo se mueve cuando todas las fechas enumeradas son en diciembre de 2011? ¿Los contextos de filtro hacen que ese intervalo sea relativo al modelo y, si es así, cómo? No entiendo. Por favor, aconséjese.
AvgXSales30 ?
VAR LastVisibleDate á MAX ('Fecha'[Fecha] )
VAR NumberofDays 30
Periodo de VAR (VAR PeriodtoUse)
FILTRO (
TODO ( 'Fecha'),
Y (
'Date'[Date] > LastVisibleDate - NumberofDays,
'Fecha'[Fecha] <-LastVisibleDate
)
)
Resultado de VAR (VAR)
CALCULAR (
AVERAGEX ( 'Fecha', [Importe de ventas] ),
PeriodtoUse
)
devolución
Resultado

Gracias.

1 ACCEPTED SOLUTION

Hola @lt79_Pax

Puede consultar el blog desde este enlace: https://www.sqlbi.com/articles/row-context-and-filter-context-in-dax/

Puede ayudarle a tener una comprensión más profunda en el contexto de filtro y el contexto de fila.

Saludos

Rico Zhou

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

6 REPLIES 6
v-rzhou-msft
Community Support
Community Support

Hola @lt79_Pax

Construyo una tabla de ventas para hacerme una prueba.

1.png

En primer lugar, pruedo tu fórmula.

Pero el último valor en el resultado es incorrecto, la respuesta correcta debe ser 4740/31 a 152.90:

2.png

Puedes probar mi medida.

Measure = 
AVERAGEX (FILTER(ALL( 'Date'),'Date'[Date]<=MAX('Date'[Date])), [ Sales Amount])

Resultado:

3.png

Max('Date'[Date]) volverá al valor Date de esta fila. Por ejemplo, el valor de fecha en esta fila es 2011/12/29, por lo que

FILTER(ALL( 'Date'),'Date'[Date]<'MAX('Date'[Date])) devolverá a una tabla la fecha <- 2011/12/29 y, a continuación, caluclará el promedio.

Para obtener más información sobre la función utilizada en dax: Averagex Max Filter

Puede descargar el archivo pbix desde este enlace: Media móvil

Saludos

Rico Zhou

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

Hola Rico,

Gracias por volver a cantar. Esto es interesante ya que las expresiones iniciales que proporcioné vinieron directamente del libro 'The Definitive Guide to DAX'. En realidad, estaba más interesado en el proceso back-end de cómo las expresiones estaban permitiendo que el promedio se moviera y cómo y dónde se estaban llevando a cabo los contextos, el filtro o la fila, en estos procesos.

Gracias por la actualización.

Hola @lt79_Pax

Puede consultar el blog desde este enlace: https://www.sqlbi.com/articles/row-context-and-filter-context-in-dax/

Puede ayudarle a tener una comprensión más profunda en el contexto de filtro y el contexto de fila.

Saludos

Rico Zhou

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

lt79_Pax
Helper II
Helper II

Hola Harsh,
Gracias por responder. Déjame ver si entiendo esto correctamente. Por lo tanto, cuando la variable de
VAR LastVisibleDate á MAX ('Fecha'[Fecha] ) se coloca en la medida bajo la variable
Periodo de VAR (VAR PeriodtoUse)
FILTRO (
TODO ( 'Fecha'),
Y (
'Date'[Date] > LastVisibleDate - NumberofDays,
'Fecha'[Fecha] <-LastVisibleDate
)
este máximo es un valor escalar. Cuando se utiliza en la expresión averagex, esta expresión permite mostrar un período de tiempo móvil basado en lo que se muestra en el gráfico a lo largo de un intervalo de tiempo mayor a medida que se calcula el averagex, itera la cantidad de ventas en relación con los contextos de filtro del modelo. El filtro actúa como un medio para obtener un rango de tiempo establecido, es decir, 30 días.

Hola @lt79_Pax ,

Así que la última fecha visible es la fecha de la fila actual.

1.jpg

Por lo tanto, para cada fila está calculando el promedio de 30 días hacia atrás a partir de esa fecha.

Date'[Date] > LastVisibleDate - NumberofDays,
'Fecha'[Fecha] <-LastVisibleDate

saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

harshnathani
Community Champion
Community Champion

Hola @lt79_Pax ,

Artículo sobre medias móviles

https://tradebrains.in/moving-averages-indicator/

Ahora, una media móvil simple (SMA) es un cálculo que considera la media o la media aritmética de un conjunto determinado de precios durante un período de tiempo específico.

Supongamos que la media móvil de 30 días para el 31 de diciembre de 2011 es "X" que toma el precio del 12/1/2011 al 12/31/2011.

Ahora, el día siguiente, es decir, el 1 de enero de 2012, la media móvil de 30 días será proce del 12/2/2011 al 1/1/2012.

y esto es lo que la fórmula está haciendo - > 'Fecha'[Fecha] > LastVisibleDate - NumberofDays && 'Fecha'[Fecha] <- LastVisibleDate

Espero haber podido explicarlo.

saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

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.