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 móvil usando el índice

Hola

Estoy tratando de crear un promedio móvil en DAX utilizando el método 1 descrito en https://www.youtube.com/watch?v=UcB-Cz6v6Sw pero aplicándolo a mi propia situación. Básicamente, estoy detrás de un método genérico para crear promedios móviles basados en una columna de índice. No quiero usar fechas, ya que a menudo trabajo con números de período, etc. y busco una solución que pueda aplicar a diferentes situaciones. He creado una columna de índice como se muestra a continuación en la primera captura de pantalla. Luego traté de adaptar el método descrito en el enlace a mi propia tabla, pero no funciona. Simplemente replica la columna de cantidad de pedido para las últimas 3 filas de la tabla. (Lo he ordenado en orden descendente). ¿Alguien puede ayudar a adaptar el DAX para que funcione para mi mesa? Muchas gracias.

Índice = CUENTAS(filtro(SalesByOrderDateKey,SalesByOrderDateKey[Sales_OrderDateKey]<=anterior(SalesByOrderDateKey[Sales_OrderDateKey])&&SalesByOrderDateKey[Grupo]=anterior(SalesByOrderDateKey[Grupo])))

Promedio móvil =
Dónde X1 = Máximo(SalesByOrderDateKey[Índice])
Dónde X2 = Máximo(SalesByOrderDateKey[Índice])-1
Dónde X3 = Máximo(SalesByOrderDateKey[Índice])-2
Dónde Y1 = calcular(distinctcount(SalesByOrderDateKey[Índice]),SalesByOrderDateKey[Índice] en {X1,X2,X3})
Dónde Y2 = SalesByOrderDateKey[Cantidad de pedido]
devolución
calcular(Y2,SalesByOrderDateKey[Índice] en {X1,X2,X3})/Y1

Untitled.jpgUntitled1.jpg

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Normalmente esto se haría con una medida pero si quieres una columna...

Rolling Average = 
var X1 = SalesByOrderDateKey[Index]
var X2 = SalesByOrderDateKey[Index]-1
var X3 = SalesByOrderDateKey[Index]-2
var Y1 = calculate(distinctcount(SalesByOrderDateKey[Index]), FILTER(SalesByOrderDateKey, SalesByOrderDateKey[Index] in {X1,X2,X3}))

RETURN

DIVIDE(calculate(SUM(SalesByOrderDateKey[Order Quantity]), FILTER(SalesByOrderDateKey, SalesByOrderDateKey[Index] in {X1,X2,X3})), Y1)

El código que no funcionaba siempre devolvería los mismos valores para las primeras 3 variables. Después de eso, Y1 siempre devolvería cero.

Déjame saber cómo va

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Normalmente esto se haría con una medida pero si quieres una columna...

Rolling Average = 
var X1 = SalesByOrderDateKey[Index]
var X2 = SalesByOrderDateKey[Index]-1
var X3 = SalesByOrderDateKey[Index]-2
var Y1 = calculate(distinctcount(SalesByOrderDateKey[Index]), FILTER(SalesByOrderDateKey, SalesByOrderDateKey[Index] in {X1,X2,X3}))

RETURN

DIVIDE(calculate(SUM(SalesByOrderDateKey[Order Quantity]), FILTER(SalesByOrderDateKey, SalesByOrderDateKey[Index] in {X1,X2,X3})), Y1)

El código que no funcionaba siempre devolvería los mismos valores para las primeras 3 variables. Después de eso, Y1 siempre devolvería cero.

Déjame saber cómo va

Hola HotChilli

Muchas gracias. Esto funciona. Exactamente lo que quería.

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.