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

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

Reply
Syndicate_Admin
Administrator
Administrator

Reservas de retroiluminación usando la última cantidad

Hola

Tengo una tarea en la que realmente no tengo idea de cómo resolverla

Tenemos una producción de una pieza (ArticleID). Cada pieza tiene varias operaciones (OP) y cada OP tiene un tiempo de trabajo planificado por pieza.
En algunas de las operaciones ponemos la cantidad producida en el sistema.
por ejemplo, el artículo 1004 tiene los PO 10, 20, 30 y 40. En OP 10 y 40 hacemos la entrada en el sistema. Una reserva en OP 40 significa que OP 20 y OP 30 también se hicieron ya pero aún no se han reservado. OP10 también se hizo, pero ya está reservado


Ahora, el día de la entrada, necesito calcular el tiempo de trabajo utilizado. El problema es, cómo flasheo hacia atrás y encuentro todos los OP entre el último punto de reserva (OP10) y el punto de reserva actual (OP40) y uso la misma cantidad que reservé en OP40 para los OP encontrados (OP 20, OP 30 y OP 40).


Los datos reales son bastante grandes, no estoy seguro de cómo, por ejemplo, una powerquery es la más fácil con algo de llenado hacia arriba / hacia abajo en términos de rendimiento

gracias

Un archivo de muestra está aquí

Archivo de muestra

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Hola @Hansolu ,
¿Podría decirme si su problema se ha resuelto o si aún necesita más información? Si necesita más ayuda, háganoslo saber.

Hola

Tengo algún otro tema urgente en mi mano y aún no continué, tomaré otras semanas hasta que pueda continuar aquí. Mantendré este hilo actualizado,

gracias

Syndicate_Admin
Administrator
Administrator

Hola @Hansolu ,
Solo revisa para ver si has tenido la oportunidad de revisar @GrowthNatives respuesta. Si tiene alguna pregunta adicional, háganoslo saber, estamos aquí para ayudarlo. Gracias por formar parte del foro de la comunidad de Microsoft Fabric.

Saludos

Yugandhar.

Syndicate_Admin
Administrator
Administrator

Hola @Hansolu , este es un problema clásico de toma retroactiva en los informes de producción, debe inferir la finalización implícita de las operaciones intermedias cuando se reserva una operación posterior, utilizando la última entrada disponible como referencia.


Objetivo

Para cada ArticleID:

  • Cuando se reserva una operación posterior (por ejemplo, OP40),

  • Desea "retroactiva" y asignar la misma cantidad a todas las operaciones no reservadas entre la reserva anterior (por ejemplo, OP10) y la actual (por ejemplo, OP40).

  • A continuación, calcule el tiempo de trabajo utilizado = PlannedTime × Quantity para esas operaciones.

🧩 Unenfoque

1. Ordena y estructura tus datos base

En Power Query:

  • Ordenar por ArticleID → OP ascendente → BookingDate ascendente.

  • Asegúrese de tener estos campos:

    • ID del artículo

    • EN

    • BookingDate (o fecha de entrada)

    • PlannedTimePerPiece

    • BookedQty (null si no se reserva)

2. Identificar puntos de reserva

Cree una columna de bandera:

IsBooked = if [BookedQty] <> null then 1 else 0

Esto le permite marcar dónde existen reservas.

3. Rellene "última operación reservada" hacia adelante

Use la lógica de relleno de Power Query :

  • Agregue una columna de índice para el pedido.

  • Agrupar por ArticleID.

  • Dentro de cada grupo:

    • Rellene el número de operación reservado más reciente (LastBookedOP).

    • También complete la cantidad reservada (LastBookedQty).

Ahora cada fila (operación) sabrá:

  • Que fue el último punto de reserva antes de él,

  • Y qué cantidad se reservó.

4. Determinar qué operaciones se van a tomar retroactivamente

Agregue una columna condicional:

ShouldBackflush =
    if [IsBooked] = 1 then 1
    else if [OP] > [LastBookedOP] and [NextBookedOP] <= [OP] then 1
    else 0

Esto marca todos los OP intermedios (por ejemplo, OP20, OP30) que se encuentran entre la última y la siguiente reserva.

Propina: Para obtener NextBookedOP, realice un relleno inverso (técnica de llenado): ordene descendentemente, complete el siguiente número de OP reservado y luego vuelva a fusionarlo.

5. Asignar cantidad de toma retroactiva

BackflushQty = if [IsBooked] = 1 then [BookedQty] else [NextBookedQty]



6. Calcule el tiempo de trabajo utilizado

UsedWorktime = [PlannedTimePerPiece] * [BackflushQty]


7. (Opcional) Optimizar el rendimiento

Dado que sus datos son grandes:

  • Realice operaciones de agrupación y relleno por ArticleID (no globalmente).

  • Evite las llamadas anidadas a Table.Buffer() a menos que sea necesario.

  • Si tiene acceso al back-end de SQL, considere la posibilidad de realizar la lógica de toma retroactiva en SQL antes de la importación de Power BI, ya que es más rápido.

Alternativa (enfoque DAX, si es necesario)

Si necesita calcular esto dinámicamente en Power BI (no precalculado en PQ):

  1. Cree una medida para detectar el último OP de reserva para cada artículo/fecha:

    LastBooking = 
    CALCULATE(
        MAX('Table'[OP]),
        FILTER('Table', 
            'Table'[ArticleID] = SELECTEDVALUE('Table'[ArticleID]) &&
            NOT(ISBLANK('Table'[BookedQty]))
        )
    )
  2. Luego use esa medida para asignar cantidades o tiempos condicionalmente:

    UsedWorktime =
    VAR CurrentOP = SELECTEDVALUE('Table'[OP])
    VAR LastBookedOP = [LastBooking]
    RETURN
    IF(CurrentOP <= LastBookedOP,
        SUMX(
            FILTER('Table', 'Table'[OP] <= LastBookedOP),
            'Table'[PlannedTimePerPiece] * 'Table'[BookedQty]
        )
    )


¡Espero que esta solución te ayude a aprovechar al máximo Power BI! Si lo hizo, haga clic en 'Marcar como solución' para ayudar a otros a encontrar las respuestas correctas.
💡¿Te ha resultado útil? ¡Muestra un poco de amor con felicitaciones 👍 mientras tu apoyo mantiene próspera a nuestra comunidad!
🚀¡Sigamos construyendo juntos soluciones más inteligentes y basadas en datos!🚀 [Explorar más]

Hola

gracias, intentaré esto durante el fin de semana cuando tenga tiempo

dará su opinión después

Syndicate_Admin
Administrator
Administrator

Hola @Hansolu, ¿podrías adjuntar algunas capturas de pantalla?

Hola, una captura de pantalla está en el archivo pbix cómo debería verse,

¿Cuál necesitas más?

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

February Power BI Update Carousel

Power BI Monthly Update - February 2026

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