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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Selección de la fecha de trabajo más temprana de la tabla de fechas en función del tiempo de envío

Hola, tengo una tabla de fechas que es una tabla calculada y contiene una columna "Es día de trabajo" con los valores 0 o 1. El problema de negocio que estoy tratando de resolver es que tengo una fecha de pedido (que siempre será en un día laborable), y tengo un tiempo de procesamiento en días (es un entero). Necesito calcular la siguiente fecha de envío más temprana que sólo puede ocurrir en las fechas en las que "Es día de trabajo" 1.

Por ejemplo, supongamos que la fecha de pedido es el miércoles 13 de enero de 2021. El tiempo de procesamiento en este pedido es de 5 días laborables, por lo que la fecha de envío más temprana es el miércoles, el 20 de enero de 2021. Esto es obviamente 7 días calendario a partir de la fecha del pedido, pero como no puede incluir los 2 días durante el fin de semana donde "Está trabajando día" - 0, agrega efectivamente los 2 días adicionales.

El desafío que estoy teniendo, es que incluso cuando filtro la tabla de fechas a donde "Es día de trabajo" 1 (digamos, dentro de una función CALCULATE), no puedo simplemente agregar el 5 a la fecha de pedido, ya que sólo realizará un cálculo de fecha estándar que no tendrá en cuenta los días laborables.

Lo que realmente quiero hacer es contar "arriba" 6 filas en la tabla filtrada de la fecha de pedido, pero no sé cómo hacerlo. Imagino que tendría que agregar una columna de índice a la tabla filtrada, y usar eso de alguna manera? Una vez más, no sé cómo hacer eso.

Cualquier ayuda sería muy apreciada!

1 ACCEPTED SOLUTION

Hola, @dive_b

Lo siento, pensé que lo que necesitas es el mismo resultado, así que hice un cambio equivocado en la medida. Sólo tiene que modificar la medida, el resultado correcto debe ser así:

Column =
VAR a =
    ADDCOLUMNS (
        'Dim Date Table',
        "aa",
            RANKX (
                FILTER (
                    ALL ( 'Dim Date Table' ),
                    [Is Working Day] = 1
                        && [Date] >= Orders[Order Date]
                ),
                [Date],
                ,
                ASC
            )
    )
RETURN
    MAXX ( FILTER ( a, [aa] = [Processing Time] ), [Date])

7.png8.png

Saludos

Janey Guo

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hola, @dive_b

De acuerdo con su descripción, creo que puede crear una columna de cálculo, utilizar la función de clasificación para calcular el resultado deseado.

Así:

Column =
VAR a =
    ADDCOLUMNS (
        'Dim Date Table',
        "aa",
            RANKX (
                FILTER (
                    ALL ( 'Dim Date Table' ),
                    [Is Working Day] = 1
                        && [Date] >= Orders[Order Date]
                ),
                [Date],
                ,
                ASC
            )
    )
RETURN
    MAXX ( FILTER ( a, [aa] = [Processing Time] ), [Date] - 1 )

2.png

Si no resuelve su problema, por favor no dude en preguntarme.

Saludos

Janey Guo

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por tu ayuda, Janey. Desafortunadamente devolvió los mismos resultados. Terminé implementando una solución en SQL que era un poco más intuitiva para mí.

Hola, @dive_b

Lo siento, pensé que lo que necesitas es el mismo resultado, así que hice un cambio equivocado en la medida. Sólo tiene que modificar la medida, el resultado correcto debe ser así:

Column =
VAR a =
    ADDCOLUMNS (
        'Dim Date Table',
        "aa",
            RANKX (
                FILTER (
                    ALL ( 'Dim Date Table' ),
                    [Is Working Day] = 1
                        && [Date] >= Orders[Order Date]
                ),
                [Date],
                ,
                ASC
            )
    )
RETURN
    MAXX ( FILTER ( a, [aa] = [Processing Time] ), [Date])

7.png8.png

Saludos

Janey Guo

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Sí, eso hizo el truco, Janey - ¡muchas gracias!

Syndicate_Admin
Administrator
Administrator

@dive_b puede lanzar un archivo pbix de muestra y compartirlo aquí a través de una unidad /google drive. La lógica que desea seguir es que la fecha de pedido + fecha de procesamiento cae 6 o 7 días (sat/sun) luego agregar 1 o 2 días en función del día de la semana que está cayendo y que obtendrá el lunes (día laborable)

Thansk @parry2k . Aquí hay un enlace WeTransfer a un archivo de ejemplo de lo que estoy tratando de hacer. Es el campo "Fecha de envío" en la tabla Pedidos de este archivo. Te escribí algunas notas.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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