Forum Discussion

bbajuscak's avatar
bbajuscak
Helper I
1 year ago
Solved

Next Deliverable for Multiple Projects

Need assistance:

I have a listing of projects, each project has multiple deliverables with dates associated with each. How can I isolate the next deliverable  and associated date for each project?  This needs to allow for updates as we move forward to continually show the next deliverable. The ONE deliverable scheduled closest to the current date moving forward for each project

 

Any help is greatly appreciated!

 

Example data:

 

ProjectDeliverableDelivery Date
Ax12/12/2024
Ay12/31/2024
Ax1/15/2025
A1/30/2025
Bk12/14/2024
Bk12/27/2024
Bj1/10/2025
Cr12/18/2024
Cs12/30/2024
Ct1/9/2025
Cu1/12/2025

 

I need to show:

ProjectDeliverableDelivery Date
Ax12/12/2024
Bk12/14/2024
Cr12/18/2024
  • hello bbajuscak 

     

    you can do this in two ways, SUMMARIZE table and measure.

    SUMMARIZE Table : 

    - create a new table with following DAX

    Summarize = 
    SUMMARIZE(
        ADDCOLUMNS(
            'Table',
            "Min Date",
            MINX(
                FILTER(
                    'Table',
                    'Table'[Project]=EARLIER('Table'[Project])
                ),
                'Table'[Delivery Date]
            )
        ),
        'Table'[Project],
        [Min Date],
        "Min Deliverable",
        MINX(
            FILTER(
                'Table',
                'Table'[Delivery Date]=[Min Date]
            ),
            'Table'[Deliverable]
        )
    )

     

    Measure : 
    - create a new measure with following DAX for looking the minimum date for each Project
    Min Date =
    MINX(
        FILTER(
            'Table',
            'Table'[Project]='Table'[Project]
        ),
        'Table'[Delivery Date]
    )
    - create another new measure with following DAX for looking Deliverable in that minimum date
    Min Deliverable =
    var _Date = [Min Date]
    Return
    MINX(
        FILTER(
            'Table',
            'Table'[Delivery Date]=_Date
        ),
        'Table'[Deliverable]
    )
    - Plot Project, Min Date (previously created measure), and Min Deliverable (previously created measure) in Table visual

     

    Hope this will help.
    Thank you.

  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi bbajuscak ,

     

    I think you can create a measure and add it into visual level filter and set it to show items when value = 1.

    Check Whether Closest Deliverable Each Project =
    VAR _Closest_Deliverable_Each_Project =
        CALCULATE (
            MIN ( Data[Delivery Date] ),
            FILTER ( ALLEXCEPT ( Data, Data[Project] ), Data[Delivery Date] > TODAY () )
        )
    RETURN
        IF ( MAX ( Data[Delivery Date] ) = _Closest_Deliverable_Each_Project, 1, 0 )

    Result is as below.

     

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

     

3 Replies

  • Irwan's avatar
    Irwan
    Super User

    hello bbajuscak 

     

    you can do this in two ways, SUMMARIZE table and measure.

    SUMMARIZE Table : 

    - create a new table with following DAX

    Summarize = 
    SUMMARIZE(
        ADDCOLUMNS(
            'Table',
            "Min Date",
            MINX(
                FILTER(
                    'Table',
                    'Table'[Project]=EARLIER('Table'[Project])
                ),
                'Table'[Delivery Date]
            )
        ),
        'Table'[Project],
        [Min Date],
        "Min Deliverable",
        MINX(
            FILTER(
                'Table',
                'Table'[Delivery Date]=[Min Date]
            ),
            'Table'[Deliverable]
        )
    )

     

    Measure : 
    - create a new measure with following DAX for looking the minimum date for each Project
    Min Date =
    MINX(
        FILTER(
            'Table',
            'Table'[Project]='Table'[Project]
        ),
        'Table'[Delivery Date]
    )
    - create another new measure with following DAX for looking Deliverable in that minimum date
    Min Deliverable =
    var _Date = [Min Date]
    Return
    MINX(
        FILTER(
            'Table',
            'Table'[Delivery Date]=_Date
        ),
        'Table'[Deliverable]
    )
    - Plot Project, Min Date (previously created measure), and Min Deliverable (previously created measure) in Table visual

     

    Hope this will help.
    Thank you.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi bbajuscak ,

     

    I think you can create a measure and add it into visual level filter and set it to show items when value = 1.

    Check Whether Closest Deliverable Each Project =
    VAR _Closest_Deliverable_Each_Project =
        CALCULATE (
            MIN ( Data[Delivery Date] ),
            FILTER ( ALLEXCEPT ( Data, Data[Project] ), Data[Delivery Date] > TODAY () )
        )
    RETURN
        IF ( MAX ( Data[Delivery Date] ) = _Closest_Deliverable_Each_Project, 1, 0 )

    Result is as below.

     

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.