Reply
Syndicate_Admin
Administrator
Administrator
Syndicated - Inbound

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

Source Community: Power BI | Source Author Name: Hart1969

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

Source Community: Power BI | Source Author Name: Hart1969
Syndicated - Inbound

Genial, gracias por esta solución

Syndicate_Admin
Administrator
Administrator

Source Community: Power BI | Source Author Name: lbendlin
Syndicated - Inbound

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

avatar user

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

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

Top Solution Authors (Last Month)
Top Kudoed Authors (Last Month)