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
mjhpbicommunity
New Member

Cómo calcular la fecha más reciente en la que cambia el valor de una columna

Hola

Espero que alguien pueda ayudar con este desafío, que está fuera de mi nivel de conocimiento con power bi.

Gol:

Tengo una tabla que proporciona una instantánea diaria de los objetos de trabajo. Cada fila especifica el "ID de elemento de trabajo", el "Fecha" y el "ID de elemento de trabajo principal" (este es el identificador primario del elemento de trabajo que aparece en la primera columna). Lo que necesito hacer es ser capaz de identificar la fecha más reciente antes de que cambie el ID principal de un elemento de trabajo. Esto se debe a que estoy tratando de medir la fecha más reciente en la que un elemento de trabajo tenía su ID principal cambiado a "142395". El desafío es que durante la historia de un elemento de trabajo, puede haber cambiado el ID de los padres a "142395" más de una vez, y necesito la fecha más reciente en la que hizo esto, no la más temprana (que actualmente sólo puedo hacer).

Ejemplo:

  • En el ejemplo siguiente tenemos una instantánea diaria del identificador de elemento de trabajo "15600" (he incluido solo este elemento de trabajo para simplificar, pero hay varios elementos de trabajo en la tabla para los que esto tendría que hacerse).
  • Me gustaría calcular la fecha más reciente en la que el identificador del elemento de trabajo principal para este elemento de trabajo cambió a "142395". En el ejemplo siguiente, esto habría estado en "09/11/2020" (resaltado en verde a continuación), desde el día anterior era un ID principal diferente (171304).
  • Mi solución actual no funciona, porque he estado filtrando el id primario "142395", luego agrupando por ID de elemento de trabajo y devolviendo la fecha mínima. Pero en este ejemplo, me daría la última fecha en la tabla (resaltado en rojo a continuación), porque este elemento de trabajo ha tenido anteriormente el id primario "142395" antes de formar parte de otro id primario. Pero sólo me interesa la fecha más reciente en la que se trasladó de nuevo al ID de padre "142395".

Espero que tenga sentido en términos de lo que estoy tratando de lograr. Me imagino que la solución implica comenzar en la fecha más reciente para cada elemento de trabajo, recorrer hacia abajo cada día, comparar el identificador del elemento de trabajo primario con el identificador del elemento de trabajo primario de la fecha anterior y, a continuación, devolver la fecha antes de que cambie a algo diferente. Pero no conozco al DAX por esto.

Muchas gracias por cualquier ayuda proporcionada.

1 ACCEPTED SOLUTION
v-jayw-msft
Community Support
Community Support

No @mjhpbicommunity ,

Si desea una columna, pruebe la fórmula de abajo.

Primero tendrá que crear una columna de índice en el Editor de consultas.

Column = 
CALCULATE (
    MAX ( 'Table'[parent work item id] ),
    FILTER ( 'Table', 'Table'[Index] = EARLIER ( 'Table'[Index] ) + 1 )
)

Column 2 = 
CALCULATE (
    MAX ( 'Table'[date] ),
    FILTER (
        ALLEXCEPT ( 'Table', 'Table'[work item id], 'Table'[parent work item id] ),
        'Table'[parent work item id] <> 'Table'[Column]
    )
)

El resultado se mostraría como se muestra a continuación.

1.PNG

Saludos

Jay

Community Support Team _ Jay
If this post helps, then please consider Accept it as the solution
to help the other members find it.

View solution in original post

2 REPLIES 2
v-jayw-msft
Community Support
Community Support

No @mjhpbicommunity ,

Si desea una columna, pruebe la fórmula de abajo.

Primero tendrá que crear una columna de índice en el Editor de consultas.

Column = 
CALCULATE (
    MAX ( 'Table'[parent work item id] ),
    FILTER ( 'Table', 'Table'[Index] = EARLIER ( 'Table'[Index] ) + 1 )
)

Column 2 = 
CALCULATE (
    MAX ( 'Table'[date] ),
    FILTER (
        ALLEXCEPT ( 'Table', 'Table'[work item id], 'Table'[parent work item id] ),
        'Table'[parent work item id] <> 'Table'[Column]
    )
)

El resultado se mostraría como se muestra a continuación.

1.PNG

Saludos

Jay

Community Support Team _ Jay
If this post helps, then please consider Accept it as the solution
to help the other members find it.
DataInsights
Super User
Super User

@mjhpbicommunity,

Pruebe esta medida:

Change Date = 
VAR vMaxWorkItemDate =
    MAX ( WorkItems[Date] )
VAR vParentWorkItem =
    CALCULATE (
        MAX ( WorkItems[Parent Work Item id] ),
        WorkItems[Date] = vMaxWorkItemDate
    )
VAR vMaxPreviousWorkItemDate =
    CALCULATE (
        MAX ( WorkItems[Date] ),
        WorkItems[Parent Work Item id] <> vParentWorkItem
    )
VAR vResult =
    CALCULATE (
        MIN ( WorkItems[Date] ),
        WorkItems[Date] > vMaxPreviousWorkItemDate
    )
RETURN
    vResult

DataInsights_0-1607396925948.png





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




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.