cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper I
Helper I

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

Accepted Solutions
Highlighted

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
Highlighted
Super User III
Super User III

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)

Highlighted
Helper I
Helper I

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.

Highlighted

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)

Highlighted
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.

Highlighted

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.

Highlighted

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

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Community Conference

Microsoft Power Platform Communities

Check out the Winners!

secondImage

Create an end-to-end data and analytics solution

Learn how Power BI works with the latest Azure data and analytics innovations at the digital event with Microsoft CEO Satya Nadella.

Top Solution Authors