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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Ayuda para calcular el número de días entre 2 columnas de fecha con un requisito específico

Hola

Tengo el siguiente conjunto de datos en un archivo Pbix. Básicamente, lo que necesito es contar el número de días que un pedido estuvo bajo un bloque de entrega específico (33). En este conjunto de datos, un orden puede ir bajo muchos bloques diferentes, pero solo necesito ver la duración que estuvo bajo el bloque 33. Mirando los datos a continuación, podemos ver que la orden se colocó en el bloque 33 primero el 14/03 y se retiró el 15/03, luego se colocó en el 33 nuevamente el 20/03 y se tomó 0ff el 22/03, luego una vez más se colocó por debajo del 33 el 28/03 y se quitó el 01/04. Eso totalizaría 7 días en el bloque 33. Tenga en cuenta que el campo de valor anterior puede estar vacío o puede tener otro valor, sin embargo, solo queremos ver cuándo cambia la fecha del nuevo valor a 33 y la fecha en que cambia de 33 a otra cosa para que podamos calcular el número de días para esa acción específica. Cualquier ayuda será muy apreciada. Gracias.

MarcioB_0-1719250511828.png

1 ACCEPTED SOLUTION

Muchas gracias Nuno. Hicimos una pequeña adaptación aquí, pero funcionó. Agradezco la ayuda.

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Hola @MarcioB

Para su pregunta, aquí está el método que proporcioné:

"Mesa"

vnuocmsft_0-1719296167286.png

En primer lugar, debe agregar una columna de índice a la Power Query.

vnuocmsft_1-1719296292129.png

Crea una nueva columna que busca la fecha con el alias 33.

Mark 33 DATE = 
IF(
         ('Table'[New Value] = 33 && ISBLANK('Table'[Old Value]))
        ||
        'Table'[Old Value] = 33
    ,
    'Table'[Update Date]
)

vnuocmsft_2-1719296371381.png

Cree una columna o una medida.

Column = 
var currentIndex = IF(
        'Table'[Mark 33 DATE] = 'Table'[Update Date]
        &&
        'Table'[Old Value] = 33
    ,
    'Table'[Index]
)
var previousDate = 
CALCULATE(
    MAX('Table'[Mark 33 DATE]), 
    FILTER(
        'Table', 
        'Table'[Index] < currentIndex
    )
)
var currentDate = 
CALCULATE(
    MAX('Table'[Mark 33 DATE]), 
    FILTER(
        'Table', 
        'Table'[Index] = currentIndex
    )
)
RETURN DATEDIFF(previousDate, currentDate, DAY)

OR

Measure = 
var currentIndex = 
IF(
    SELECTEDVALUE('Table'[Mark 33 DATE]) = SELECTEDVALUE('Table'[Update Date])
    &&
    SELECTEDVALUE('Table'[Old Value]) = 33,
    SELECTEDVALUE('Table'[Index])
)
var previousDate = 
CALCULATE(
    MAX('Table'[Mark 33 DATE]), 
    FILTER(
        ALL('Table'), 
        'Table'[Index] < currentIndex
    )
)
var currentDate = 
CALCULATE(
    MAX('Table'[Mark 33 DATE]), 
    FILTER(
        ALL('Table'), 
        'Table'[Index] = currentIndex
    )
)
RETURN DATEDIFF(previousDate, currentDate, DAY)

Aquí está el resultado.

vnuocmsft_3-1719296635676.png

Saludos

Nono Chen

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

Muchas gracias Nuno. Hicimos una pequeña adaptación aquí, pero funcionó. Agradezco la ayuda.

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

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

July Newsletter

Fabric Community Update - July 2024

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

Top Solution Authors