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

Media móvil mediante el cálculo de medidas existentes

Hola

Hacer un poco de trabajo en el cálculo de los días de rotación de inventario. Usando la Medida (A) y los datos sin procesar (B) en la parte inferior, puedo calcular con éxito los Días de Rotación de Inventario como se ve en la visualización mensual y trimestral:

Fraze_0-1644439537956.png

Fraze_1-1644439600256.png

Sin embargo, parece que no puedo crear una medida que calcualtes la media móvil de 3 meses. ¿Cómo convertiría mi medida actual o crearía una nueva que me diera la media móvil?

EJEMPLO

Por ejemplo, el promedio de 3 meses consecutivos para enero de 2022, siguiendo la fórmula de medición a continuación, debe ser

Inventario promedio = [(95 + 71 + 41) + (94 + 95 + 71)]/ (3 * 2) = 78

SaleCount = (93 + 59 + 62) = 214

Duración del período = (31 + 31 + 30) = 91

Volumen de inventario = (78 / 214) * 91 = 33

A) MEDIDA

Rotación de inventario =
Dónde PromedioInventory = DIVIDIR(SUMA([InicioInventory]) + SUMA([EndingInventory]),DISTINCTCOUNT([Mes])*2)
Dónde SaleCount = SUMA([Ventas minoristas])
Dónde PeriodoLongitud = SUMA([Recuento de días])

DEVOLUCIÓN

DIVIDIR(PromedioInventory,SaleCount)*PeriodoLongitud

B) DATOS BRUTOS

MesVentas minoristasInicioInventoryEndingInventoryRecuento de días
enero 1, 202293959431
diciembre 1, 202159719531
noviembre 1, 202162417130
octubre 1, 202170584131
septiembre 1, 202189695830
agosto 1, 2021111556931
julio 1, 2021118635531
junio 1, 2021134696330
1 de mayo de 2021102786931
abril 1, 2021105997830
marzo 1, 20211481399931
febrero 1, 202111115813928
enero 1, 20219114115831
diciembre 1, 20207611514131
noviembre 1, 202010611611530
octubre 1, 20201218911631
septiembre 1, 2020140988930
agosto 1, 2020134719831
julio 1, 2020154897131
junio 1, 20201411158930
1 de mayo de 202011514611531
abril 1, 20206814814630
marzo 1, 20205010414831
febrero 1, 2020839310429
enero 1, 2020102829331
diciembre 1, 201990788231
noviembre 1, 201991937830
octubre 1, 20191221229331
septiembre 1, 201912313512230
agosto 1, 201913215813531
julio 1, 201911116915831
junio 1, 201910616716930
1 de mayo de 201910213516731
abril 1, 20197911613530
marzo 1, 201911712011631
febrero 1, 20198313612028
enero 1, 20199715113631

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

¿ @Fraze

Aquí hay un enlace para guiarlo a través de él: https://www.sqlbi.com/articles/rolling-12-months-average-in-dax/

En este blog, te muestran cómo hacer tres meses también.

Espero que esto ayude.

Seguir

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Abrir un nuevo ticket con la tabla de referencia desde el principio. gracias por el feeback hasta ahora, no acepto el comentario de Theo como la solución.

https://community.powerbi.com/t5/Desktop/Converting-Calculated-Measure-to-Moving-Average/m-p/2331401...

Syndicate_Admin
Administrator
Administrator

¿ @Fraze

Aquí hay un enlace para guiarlo a través de él: https://www.sqlbi.com/articles/rolling-12-months-average-in-dax/

En este blog, te muestran cómo hacer tres meses también.

Espero que esto ayude.

Seguir

Hola Theo,

Gracias por el material.

Usando el enfoque de su artículo, creé la medida que encontrará a continuación; Sin embargo, no está creando una media móvil de anyting. El resultado final termina exactamente igual que la medida original. ¿Alguna idea de por qué ese sería el caso? Parece que todavía se ejecuta un mes a la vez en lugar de aplicar el período especificado en la variable DatesInPeriod

Rotación de inventario (promedio de 3 meses) =
DÓNDE NumOfMonths = 3
DÓNDE LastSelectedDate = MÁXIMO([Fecha])
DÓNDE Periodo = DATESINPERIOD([Fecha],LastSelectedDate, -NumOfMonths,MES)

DÓNDE PromedioInventory = DIVIDIR(SUMA([InicioInventory])+SUMA([EndingInventory]),DISTINCTCOUNT([Mes])*2)
DÓNDE SaleCount = SUMA([Ventas minoristas])
DÓNDE PeriodoLongitud = DIVIDIR(SUMA([Recuento de días]),DISTINCTCOUNT([Tipo de acuerdo]))
DÓNDE Resultado = CALCULAR(DIVIDIR(PromedioInventory,SaleCount)*PeriodoLongitud,Periodo)

DEVOLUCIÓN
SI(«(4)Datos de inventario»[Volumen de ventas de inventario] > 0, Resultado)

Fraze_0-1644447249267.png

@Fraze eso es realmente interesante. Si está saliendo exactamente igual, entonces puede ser la forma en que tiene sus relaciones / Modelo de datos establecido. ¿Puede enviar una captura de pantalla de las relaciones y simplemente proporcionar una comprensión de la forma en que ha establecido su tabla de fechas?

Gracias de antemano.

Seguir

¿Qué tal si acabo de compartir el enlace del archivo de muestra?

Básicamente, el promedio de 3mos no debería ser el mismo, ya que está utilizando un cálculo y un rango de fechas especificado. Por favor, hágamelo saber si me equivoqué

https://1drv.ms/u/s!AuZqEDLABUeQgs4umqr7okhOnjzpDQ?e=WdXSuk

Fraze_0-1644473844464.png

Así que mi tabla de fechas y mi modelo son muy simples. Todos los datos de un mes son el primer día (por ejemplo, 1 de enero, 1 de febrero)

Calendario = CALENDARIO(MIN('Datos de inventario'[Mes]),MÁXIMO('Datos de inventario'[Mes]))

Fraze_0-1644448459232.png

Y sé que la parte del período de la medida es correcta, ya que si devuelvo la primera y la última fecha durante cada período, estoy viendo correctamente los 3 meses que me interesan para cada mes.

Fraze_1-1644449646173.png

Entonces, una vez más, confundido por qué esta medida no está utilizando las fechas en el período. La parte destacada de la medida es lo que difiere del artículo. Pero así es como necesito calcular la métrica...

Rotación de inventario (promedio de 3 meses) =
DÓNDE NumOfMonths = 3
DÓNDE LastSelectedDate =
MÁXIMO(«(0)Calendario»[Fecha])
DÓNDE Periodo =
DATESINPERIOD(«(0)Calendario»[Fecha],LastSelectedDate, -NumOfMonths,MES)

DÓNDE PromedioInventory =
DIVIDIR(SUMA('Datos de inventario'[StartingInventory]) + SUMA('Datos de inventario'[EndingInventory]),DISTINCTCOUNT('Datos de inventario'[Mes])*2)
DÓNDE SaleCount =
SUMA(«Datos de inventario»[RetailSales])
DÓNDE PeriodoLongitud =
DIVIDIR(SUMA('Datos de inventario'[Recuento de días]),DISTINCTCOUNT('Datos de inventario'[Tipo de acuerdo]))
DÓNDE Resultado =
CALCULAR(DIVIDIR(PromedioInventory,SaleCount)*PeriodoLongitud,Periodo)

DEVOLUCIÓN
Resultado

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.