Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hola
Necesito ayuda para resolver un cálculo como este:
+ La siguiente tabla muestra el precio de compra de un artículo de vez en cuando.
+ Una fecha mays tienen muchos precios, distintos por el aumento de record_ID.
+ Un artículo puede tener muchos códigos de divisa.
+ las fechas no son continuas.
el objetivo es calcular la desviación del precio con el precio anterior, correlacionando con el código de divisa.
Pls ayúdame con esto.
Gracias y saludos,
Record_ID SKU_ID Invoice_Date Invoice_Datetime Purchase_Price Currency_Code
5637227309 | FO01 | 15/05/2019 | 15/05/2019 9:38 | 5.68 | Usd |
5637227316 | FO01 | 16/05/2019 | 15/05/2019 10:02 | 5.05 | Usd |
5637227328 | FO01 | 16/05/2019 | 16/05/2019 9:09 | 6.68 | Usd |
5637227329 | FO01 | 16/05/2019 | 16/05/2019 9:10 | 5.68 | Usd |
5637227376 | FO01 | 17/05/2019 | 17/05/2019 7:00 | 5.68 | Usd |
5637234115 | FO01 | 26/06/2019 | 26/06/2019 9:42 | 5.08 | Usd |
5637234804 | FO01 | 28/06/2019 | 28/06/2019 9:26 | 5.08 | Usd |
5637234805 | FO01 | 28/06/2019 | 28/06/2019 9:39 | 5.08 | Usd |
5637237067 | FO01 | 22/07/2019 | 22/07/2019 2:50 | 7.08 | Usd |
5637255524 | FO01 | 23/10/2019 | 25/10/2019 6:05 | 15.00 | Sgd |
Hola @cong_nguyen_acc ,
Probamos el código de los nandukrishnavs y funciona bien.
Tal vez puedas probar la siguiente medida.
Measure =
VAR current_time =
MIN ( 'Table'[Invoice_Datetime] )
VAR _previousDateTime =
CALCULATE (
MAX ( 'Table'[Invoice_Datetime] ),
ALLSELECTED ( 'Table' ),
'Table'[SKU_ID] IN DISTINCT ( 'Table'[SKU_ID] ),
'Table'[Invoice_Datetime] < current_time,
'Table'[Currency_Code] IN DISTINCT ( 'Table'[Currency_Code] )
)
VAR _previousPrice =
CALCULATE (
SUM ( 'Table'[Purchase_Price] ),
ALLSELECTED ( 'Table' ),
'Table'[Invoice_Datetime] = _previousDateTime
)
RETURN
IF (
ISBLANK ( _previousPrice ),
BLANK (),
SUM ( 'Table'[Purchase_Price] ) - _previousPrice
)
El resultado así,
Si no cumple con su requisito, ¿podría mostrar el resultado exacto esperado basado en la tabla que ha compartido?
BTW, pbix como adjunto.
Saludos
Equipo de Apoyo comunitario _ zhenbw
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@cong_nguyen_acc , Usted puede obtener el precio de la última fecha como. Usar tabla de fechas
Una nueva medida
Precio no contincioso de último día: CALCULATE(Avg('Table'[Price]),filter(all('Date'),'Date'[Date] ?MAXX(FILTER(all('Date'),'Date'[Date]<max('Date'[Date]]),Table['Date'])))
Y tomar diff con el precio
Para obtener lo mejor de la función de inteligencia de tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únase a él con la columna de fecha de su hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/
Variation =
var _currencu='Table'[Currency_Code]
var _previousDateTime=MAXX(FILTER(ALL('Table'),'Table'[SKU_ID]=EARLIER('Table'[SKU_ID])&&'Table'[Invoice_Datetime ]<EARLIER('Table'[Invoice_Datetime ])&&'Table'[Currency_Code]=_currencu),'Table'[Invoice_Datetime ])
var _previousPrice= MAXX(FILTER(ALL('Table'),'Table'[Invoice_Datetime ]=_previousDateTime),'Table'[Purchase_Price ])
var _variation= 'Table'[Purchase_Price ]-_previousPrice
return IF(ISBLANK(_previousPrice),BLANK(),_variation)
¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Apreciar con un kudos🙂
Gracias nandukrishnavs,
El código funciona, pero todavía tiene fallos:
La variación sale mal cuando selecciono este elemento:
+ Línea 5637171193 , el resultado esperado debe ser 0 .
+ La línea 5637177070 debe ser 35.
+ La línea 5637182299 debe ser 0.
+ La línea 5637250795 debe ser 0.
Pls comprobar el código con este ejemplo de datos.
Gracias.
Record_ID | SKU_ID | Invoice_Date | Invoice_Datetime | M_Previous_Date | M_Min_Date | Purchase_Price | Currency_Code | Variación |
5637165016 | 01VCDB5TP | 29/05/2017 0:00 | 30/05/2017 1:55 | 29/05/2017 0:00 | 29/05/2017 0:00 | 30 | Usd | |
5637171193 | 01VCDB5TP | 06/09/2017 0:00 | 11/09/2017 6:53 | 06/09/2017 0:00 | 06/09/2017 0:00 | 30 | Usd | -15 |
5637177070 | 01VCDB5TP | 22/11/2017 0:00 | 22/11/2017 9:18 | 22/11/2017 0:00 | 22/11/2017 0:00 | 65 | Usd | -30 |
5637177071 | 01VCDB5TP | 22/11/2017 0:00 | 22/11/2017 9:20 | 22/11/2017 0:00 | 22/11/2017 0:00 | 65 | Usd | |
5637182299 | 01VCDB5TP | 29/01/2018 0:00 | 30/01/2018 3:39 | 29/01/2018 0:00 | 29/01/2018 0:00 | 65 | Usd | -189 |
5637232630 | 01VCDB5TP | 12/06/2019 0:00 | 13/06/2019 10:36 | 12/06/2019 0:00 | 12/06/2019 0:00 | 39 | Usd | -26 |
5637250795 | 01VCDB5TP | 13/09/2019 0:00 | 13/09/2019 7:29 | 13/09/2019 0:00 | 13/09/2019 0:00 | 39 | Usd | -31 |
5637252349 | 01VCDB5TP | 27/09/2019 0:00 | 27/09/2019 7:20 | 27/09/2019 0:00 | 27/09/2019 0:00 | 39 | Usd | |
5637266340 | 01VCDB5TP | 24/02/2020 0:00 | 24/02/2020 10:57 | 24/02/2020 0:00 | 24/02/2020 0:00 | 39 | Usd | |
5637270069 | 01VCDB5TP | 08/04/2020 0:00 | 09/04/2020 8:20 | 08/04/2020 0:00 | 08/04/2020 0:00 | 39 | Usd |
Si desea el precio al que se vendió más recientemente, deberá utilizar la función EARLIER dentro de una columna calculada. Si desea que el precio de un día o mes anterior, debe crear una tabla de fechas continua, relacionarla con la tabla existente y utilizar la inteligencia de tiempo.
¿Este post ha resuelto tu problema? Por favor, márquelo como una solución para que otros puedan encontrarlo rápidamente y para que la comunidad sepa que su problema ha sido resuelto.
Si has encontrado este post útil, por favor, dale a Kudos.
Trabajo como instructor y consultor para Microsoft 365, especializado en Power BI y Power Query.
https://sites.google.com/site/allisonkennedycv
Copying DAX from this post? Click here for a hack to quickly replace it with your own table names
Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C
I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com
Además de mi respuesta anterior, aquí hay una fórmula de muestra que debería ayudar a:
¿Este post ha resuelto tu problema? Por favor, márquelo como una solución para que otros puedan encontrarlo rápidamente y para que la comunidad sepa que su problema ha sido resuelto.
Si has encontrado este post útil, por favor, dale a Kudos.
Trabajo como instructor y consultor para Microsoft 365, especializado en Power BI y Power Query.
Copying DAX from this post? Click here for a hack to quickly replace it with your own table names
Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C
I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com
Check out the September 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.