Forum Discussion
Power Query FIFO Inventory Valuation - ¿recursivo?
Así que ahora he creado un GroupedIndex que debe funcionar para hacer bucle a través de List.Generate o List.Accumulate.
Para dejar más claro lo que necesito, adjunté también una captura de pantalla reciente de los datos. Debe ser sencillo para los profesionales...
OpeningUnitRate es en realidad la columna que necesito calcular, es sólo para una mejor lectura que ya está aquí en este caso. Se asemeja a la tarifa unitaria inicial (que obtuve durante algunos meses).
Necesito:
UnitRate=
Si OpeningUnitRate<>0 entonces
AperturaUnitRate
Más
InventoryFromOpening(GroupIndex-1)**UnitRate*+ (Necesito el resultado anterior de la columna que estoy calculando!)
InventoryFromPurchases(GroupIndex-1)*PurchasePrice(GroupIndex-1) (Tengo el PurchasePrice)
/
ClosingStock(GroupIndex-1) (Tengo el closingStock)
No @ruhrbi,
Aquí hay una publicación similar para su referencia: https://community.powerbi.com/t5/Power-Query/Simple-recursive-calculation-Power-Query/m-p/1093141
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
Saludos
Dedmon Dai
- Syndicate_Admin5 years agoAdministrator
¡Gracias, eso ayudó mucho! Sin embargo, sigue siendo un problema, pero creo que es fácil de solucionar:
Mi función:
let unitratefunction = (InitialUnitRate,InventoryFromOpening,InventoryFromPurchases,PurchaseUR,ClosingStock,Counter,Index) as number=> let UR = if InitialUnitRate <> 0 then InitialUnitRate else ((InventoryFromOpening{Counter-1}*@unitratefunction(InitialUnitRate,InventoryFromOpening,InventoryFromPurchases,PurchaseUR,ClosingStock,Counter-1,Index))+ InventoryFromPurchases{Counter-1}*PurchaseUR)/ClosingStock, Return = UR in Return in unitratefunctionMi columna agregada que llama a la función:
UR=Table.AddColumn(#"Added Custom12", "UR", each unitratefunction([OpeningUnitRate],[InventoryFromOpening],[InventoryFromPurchases],[PurchasedValueCumu]/[PurchasedTicketsCumu],[ClosingStock],1,[Index])) in URA continuación, obtendré el siguiente error en aquellos elementos donde initialunitrate es 0:
An error occurred in the ‘unitratefunction’ query. Expression.Error: We cannot convert the value 2993376.231 to type List. Details: Value=2993376,231 Type=[Type]¿Alguna idea? No quiero una lista, sólo quiero el resultado como un número
- Syndicate_Admin5 years agoAdministrator
No @ruhrbi,
La mejor persona para ayudar en él es @ImkeF uno de los mejores (si no el mejor) usuario en lenguaje M en la comunidad.
Saludos
Dedmon Dai