Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
Syndicate_Admin
Administrator
Administrator

Power Query: calcular un valor de una columna basado en el valor anterior de la misma columna

Hola

Tengo el siguiente problema y necesito una solución para solucionarlo con Power Query:

Ich tiene diferentes versiones (22.1, 22.2, 22.3 , 22.4, 23.1, 23.2, 23.3, 23.4)

En cada lanzamiento se da la capacidad necesaria y la capacidad disponible.

Ahora quiero calcular el superávit y el backlog para estas capacidades:

El excedente es sólo [capacidad necesaria] - [capacidad disponible]

El backlog debe agregar el valor del backlog del paso anterior + excedente. Si esto es negativo, debe establecerse en 0

Ejemplo:

Liberar la capacidad necesaria Capacidad disponible Excedente de trabajo pendiente Descripción
22,1 35 30 5 5 5 días de estancia en el trabajo atrasado porque la capacidad disponible es inferior a la capacidad necesaria
22.2 40 30 10 15 10 días desde la versión actual + 5 días desde el retraso en el paso anterior
22,3 20 30 -10 5 El trabajo atrasado se reduce en 10 días
22,4 10 30 -20 0 El trabajo pendiente se reduce a 0 porque quedan 20 días en la versión, pero sólo 5 días estaban en el trabajo pendiente
23.1 45 30 15 15 15 días a partir de esta versión entran en el backlog
23,2 30 30 0 15 15 días de estancia en el trabajo atrasado
23.3 25 30 -5 10 5 días en esta versión están disponibles para reducir el trabajo pendiente
23.4 10 30 -20 0 20 días están disponibles en esta versión, lo que reduce el trabajo pendiente a 0


Así que mi pregunta es: Cómo resolver esto en Power Query (calcular la columna de trabajo pendiente en función del valor del trabajo pendiente anterior)

Espero sus respuestas 🙂

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Genial, gracias por esta solución

Syndicate_Admin
Administrator
Administrator

Power Query no tiene ningún concepto de "anterior". Debe indicar lo que eso significa en su escenario, idealmente agregando una columna de índice. Puede eliminar las columnas que no forman parte del problema.

A partir de ahí es un List.Accumulate estándar para calcular el valor del backlog:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjLSM1TSUTI2BREGSrE6YCEjIM/EAEXIGMgzQhUyAfIMkYWMwWaZmKIIGUF4yEJgs1BVoZgVCwA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Release = _t, #"Needed Capacity" = _t, #"Available Capacity" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Needed Capacity", Int64.Type}, {"Available Capacity", Int64.Type}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1, Int64.Type),
    #"Added Custom" = Table.AddColumn(#"Added Index", "Backlog", each List.Accumulate({0..[Index]},0,(state,current)=> List.Max({0, state + #"Added Index"[Needed Capacity]{current}-#"Added Index"[Available Capacity]{current}})))
in
    #"Added Custom"

lbendlin_0-1669478005970.png

Helpful resources

Announcements
Feb2025 Sticker Challenge

Join our Community Sticker Challenge 2025

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors