March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hola
Tengo un proyecto que necesito para calcular el precio de venta promedio (ASP) de ciertos meses y luego usarlo como ASP para los meses futuros.
Tengo una tabla simplificada de mi proyecto:
Cliente | Mes | Volumen | Ingresos |
A | ENE | 20 | 100 |
B | ENE | 25 | 150 |
A | FEB | 15 | 125 |
B | FEB | 30 | 500 |
C | FEB | 23 | 400 |
A | ESTROPEAR | 21 | 350 |
B | ESTROPEAR | 50 | 750 |
C | ESTROPEAR | 24 | 160 |
D | ESTROPEAR | 85 | 1200 |
E | ESTROPEAR | 65 | 950 |
E | APR | 35 | |
B | APR | 26 | |
B | MAYO | 45 | |
C | MAYO | 24 | |
C | MAYO | 59 |
En este ejemplo, necesito calcular el ASP de enero, febrero y marzo y luego usarlo como ASP para abril y mayo en una tabla o matriz en Power BI. Probé Calcular, pero la parte del filtro del meausre hizo que solo calculara cuando los meses son JAN o Febrero o Marzo. Estoy totalmente perdido aquí. Cualquier ayuda sería apreciada!!
Solved! Go to Solution.
¿ @ymobbs
Puedes probar esta medida
ASP =
var _lastMonth = CALCULATE(MAX('Table'[Month Number]),ALL('Table'),'Table'[Revenue]<>BLANK())
var _totalRevenue = CALCULATE(SUM('Table'[Revenue]),ALL(Months[Month]),'Months'[MonthNumber]<=_lastMonth)
var _totalVolume = CALCULATE(SUM('Table'[Volume]),ALL(Months[Month]),'Months'[MonthNumber]<=_lastMonth)
return
IF(MAX(Months[MonthNumber])>_lastMonth,DIVIDE(_totalRevenue,_totalVolume))
Creo dos tablas Dim Clientes y Meses con el siguiente código y las uso en la matriz visual. Esto evitaría que falten datos cuando no hay datos en algunos meses en la tabla de datos. Y cree relaciones entre las tablas Dim y la tabla Data.
Customers = VALUES('Table'[Customer])
Months = DISTINCT(SELECTCOLUMNS('Table',"MonthNumber",'Table'[Month Number],"Month",'Table'[Month]))
Resultado
Descargue el archivo adjunto para ver los detalles.
Saludos
Equipo de soporte de la comunidad _ Jing
Si esta publicación ayuda, por favor acéptala como Solución para ayudar a otros miembros a encontrarla.
¿ @ymobbs
Puedes probar esta medida
ASP =
var _lastMonth = CALCULATE(MAX('Table'[Month Number]),ALL('Table'),'Table'[Revenue]<>BLANK())
var _totalRevenue = CALCULATE(SUM('Table'[Revenue]),ALL(Months[Month]),'Months'[MonthNumber]<=_lastMonth)
var _totalVolume = CALCULATE(SUM('Table'[Volume]),ALL(Months[Month]),'Months'[MonthNumber]<=_lastMonth)
return
IF(MAX(Months[MonthNumber])>_lastMonth,DIVIDE(_totalRevenue,_totalVolume))
Creo dos tablas Dim Clientes y Meses con el siguiente código y las uso en la matriz visual. Esto evitaría que falten datos cuando no hay datos en algunos meses en la tabla de datos. Y cree relaciones entre las tablas Dim y la tabla Data.
Customers = VALUES('Table'[Customer])
Months = DISTINCT(SELECTCOLUMNS('Table',"MonthNumber",'Table'[Month Number],"Month",'Table'[Month]))
Resultado
Descargue el archivo adjunto para ver los detalles.
Saludos
Equipo de soporte de la comunidad _ Jing
Si esta publicación ayuda, por favor acéptala como Solución para ayudar a otros miembros a encontrarla.
@v-jingzhang ¡Muchas gracias! Pude enchufar la medida para que funcionara.
Sin embargo, podría ser un problema una vez que el tiempo avanza cuando incluye 2 años de datos. Cuando llegue, la medida tiene que cambiar de basarse en "Mes" a "Fecha". No hay prisa, pero por favor ajustar la medida para que funcione cuando se incluyen varios años de datos. ¡Gracias de nuevo!
¿ @ymobbs
Cuando tenga la columna Fecha y datos de varios años, le recomiendo que agregue una tabla Fecha al modelo. Cree una relación entre la tabla Fecha y la tabla de hechos en sus columnas Fecha (dirección de filtro único de uno a muchos). En la tabla Fecha, agregue una columna YearMonth para tener valores como 202201, 202202, 202203... durante meses en todos los años. A continuación, utilice esta columna YearMonth para reemplazar la columna MonthNumber original en mi medida anterior. Elimine la tabla Meses de mi respuesta anterior y use la tabla Fecha en su lugar.
El uso de una tabla de fechas es una práctica común y recomendada cuando se desea realizar cálculos relacionados con la fecha.
¿Necesita una dimensión de fecha? - RADACAD
El mejor método de fecha o tabla de calendario de Power BI: ¿DAX o Power Query? - RADACAD
Saludos
Jing
@amitchandak ¡Muchas gracias por su respuesta!
Sin embargo, no entiendo muy bien las fórmulas que escribiste. ¿Cuál de las medidas que puedo poner en una Matriz para mostrar el ASP para abril y mayo?
Cliente | Apr | Mayo | ||
Volumen | ÁSPID | Volumen | ÁSPID | |
C | ||||
B | ||||
E |
@ymobbs , Puedes obtener me gusta de la fórmula
MTD ASP= CALCULATE([ASP] ,DATESMTD('Date'[Date]))
last MTD ASP= CALCULATE([ASP],DATESMTD(dateadd('Date'[Date],-1,MONTH)))
2º último MTD ASP= CALCULATE([ASP],DATESMTD(dateadd('Date'[Date],-2,MONTH)))
usando hoy
Este mes Hoy =
var _min = eomonth(today(),-1)+1
var _max = eomonth(today(),0) //today()
devolución
CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Date] >= _min && 'Date'[Date] <=_max ) )
último mes Hoy =
var _min = eomonth(hoy(),-2)+1
var _max = eomonth(today(),-1) //today()
devolución
CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Date] >= _min && 'Date'[Date] <=_max ) )
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.