Forum Discussion

caruso1058's avatar
caruso1058
Icon for Microsoft Employee rankMicrosoft Employee
5 years ago
Solved

Indefinido

Estoy intentando crear un diagrama de Gantt, sin embargo, necesito proporcionar fechas de finalización a mi modelo. La fecha de finalización de una tarea es la fecha de inicio de la otra tarea, por lo que estoy buscando una función DAX que me permita construir esta lógica:

ProyectoPuertaFecha_inicialFinish_Date

A123

Principio

1/1/20203/1/2020

A123

Parcial3/1/20206/1/2020
A123Principalmente6/1/202010/1/2020
A123Final10/1/202010/1/2020

No estoy seguro de qué DAX formual puedo escribir para devolver la fecha Finsh.
Toda la ayuda es muy apreciada.

  • Hola @caruso1058 - ver esta medida:

    edhans_0-1600723021421.png

    Finish Date = 
    VAR varCurrentDate = MAX('Table'[Start_Date])
    VAR varNextDate = 
    CALCULATE(
        MIN('Table'[Start_Date]),
        FILTER(
            All('Table'),
            'Table'[Start_Date] > varCurrentDate
        )
    )
    RETURN
    IF(
        ISBLANK(varNextDate),
        varCurrentDate,
        varNextDate
        )

    Esto devolverá la fecha mínima por encima de la fecha actual, a menos que no haya una fecha siguiente, en cuyo caso se repetirá la fecha actual.

    Una nota @caruso1058 - no especificó, pero supongo que desea que esto sea por proyecto. Tenga en cuenta la sustitución de ALL() por ALLEXCEPT()

    edhans_0-1600724339459.png

    Así que se puede ver que la fecha del 1 de abril de 2020 no impactó el proyecto A123.

  • Hola

    Pruebe esta fórmula de columna calculada

    •calculate(min(data[project schedule]),filter(data,data[project]-earlier(data[project])&&&data[project schedule]>earlier(data[project schedule])))

    Espero que esto ayude.

9 Replies

  • edhans's avatar
    edhans
    Icon for Community Champion rankCommunity Champion

    Hola @caruso1058 - ver esta medida:

    edhans_0-1600723021421.png

    Finish Date = 
    VAR varCurrentDate = MAX('Table'[Start_Date])
    VAR varNextDate = 
    CALCULATE(
        MIN('Table'[Start_Date]),
        FILTER(
            All('Table'),
            'Table'[Start_Date] > varCurrentDate
        )
    )
    RETURN
    IF(
        ISBLANK(varNextDate),
        varCurrentDate,
        varNextDate
        )

    Esto devolverá la fecha mínima por encima de la fecha actual, a menos que no haya una fecha siguiente, en cuyo caso se repetirá la fecha actual.

    Una nota @caruso1058 - no especificó, pero supongo que desea que esto sea por proyecto. Tenga en cuenta la sustitución de ALL() por ALLEXCEPT()

    edhans_0-1600724339459.png

    Así que se puede ver que la fecha del 1 de abril de 2020 no impactó el proyecto A123.

  • caruso1058's avatar
    caruso1058
    Icon for Microsoft Employee rankMicrosoft Employee

    Hola @edhans ,

    ¡Muchas gracias por su ayuda con esto! Me gusta su táctica, pero parece que me está metiendo en un problema con esta lógica, ya que sólo devuelve la fecha MAX dentro de mi conjunto de datos... parece ser un error tipográfico, ya que no estamos programando tan lejos en el futuro todavía, pero divacío.

    De todos modos, el problema que estoy teniendo es doble, uno es extraer la última fecha de tarea, segundo es agrupar esta lógica por cada proyecto.

    Screenshot 2020-09-21 144234.png

    • Ashish_Mathur's avatar
      Ashish_Mathur
      Icon for Super User rankSuper User

      Hola

      Pruebe esta fórmula de columna calculada

      •calculate(min(data[project schedule]),filter(data,data[project]-earlier(data[project])&&&data[project schedule]>earlier(data[project schedule])))

      Espero que esto ayude.