Forum Discussion

aqeel_shaikh's avatar
aqeel_shaikh
Icon for Helper III rankHelper III
1 year ago
Solved

Aging(Days) column should be stopped

"Aging(Days)" column should be stopped when the "Project completion date" or "Expected completion date" is reached.


currently my aging is calculated as [Project Actual Start date - Today()] which is calculated field in powerbi. hence the aging doesn't stop.

 

data set is attached herewith.

 

Project Actual Start DateExpected Completion DateProject Completion DateAging(days)
06/02/2025 00:0003/03/2025 00:0001/03/2025 00:0026
01/02/2025 00:0028/02/2025 00:0025/02/2025 00:0031
26/02/2025 00:0005/03/2025 00:00 6
28/02/2025 00:0007/03/2025 00:0005/03/2025 00:004
15/01/2025 00:0005/02/2025 00:00 48
09/10/2024 00:0011/02/2025 00:00 146
03/02/2025 00:0019/02/2025 00:00 29
19/02/2025 00:0026/02/2025 00:00 13
10/02/2025 00:0010/04/2025 00:00 22
06/02/2025 00:0012/02/2025 00:0017/02/2025 00:0026
13/11/2024 00:0021/02/2025 00:0020/02/2025 00:00111

 

  • shafiz_p's avatar
    shafiz_p
    1 year ago

    ok. You need to use aggregator function, like min, max etc. Try update the formula with min aggr. as follows:

    Aging(Days) = 
    VAR CompletionDate = 
        IF(
            NOT(ISBLANK(MIN('Procurement Project'[Project Completion Date]))),
            MIN('Procurement Project'[Project Completion Date]),
            MIN('Procurement Project'[Expected Completion Date])
        )
    RETURN
        IF(
            NOT(ISBLANK(CompletionDate)),
            DATEDIFF(MIN('Procurement Project'[Project Actual Start Date]), CompletionDate, DAY),
            DATEDIFF(MIN('Procurement Project'[Project Actual Start Date]), TODAY(), DAY)
        )
    

     

    Hope this helps!! 

8 Replies

  • Hi aqeel_shaikh  Try this:

    Aging(Days) = 
    VAR CompletionDate = 
        IF(
            NOT(ISBLANK('Table'[Project Completion Date])),
            'Table'[Project Completion Date],
            'Table'[Expected Completion Date]
        )
    RETURN
        IF(
            NOT(ISBLANK(CompletionDate)),
            DATEDIFF('Table'[Project Actual Start Date], CompletionDate, DAY),
            DATEDIFF('Table'[Project Actual Start Date], TODAY(), DAY)
        )
    

     

    Hope this helps!!

    If this solved your problem, please accept it as a solution and a kudos!!

     

    Best Regards,
    Shahariar Hafiz

    • aqeel_shaikh's avatar
      aqeel_shaikh
      Icon for Helper III rankHelper III

      shafiz_p - Hi, can you please check what is wrong here iam getting error

       

       

      Ageing(Days) = 
      VAR CompletionDate = 
          IF(
              NOT(ISBLANK('Procurement Project'[ProjectCompletionDate])),
              'Procurement Project'[ProjectCompletionDate],
              'Procurement Project'[Expected Completion Date]
          )
      RETURN
          IF(
              NOT(ISBLANK(CompletionDate)),
              DATEDIFF('Procurement Project'[Project Actual Start Date], CompletionDate, DAY),
              DATEDIFF('Procurement Project'[Project Actual Start Date], TODAY(), DAY)
          )

       

       

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

        ok. You need to use aggregator function, like min, max etc. Try update the formula with min aggr. as follows:

        Aging(Days) = 
        VAR CompletionDate = 
            IF(
                NOT(ISBLANK(MIN('Procurement Project'[Project Completion Date]))),
                MIN('Procurement Project'[Project Completion Date]),
                MIN('Procurement Project'[Expected Completion Date])
            )
        RETURN
            IF(
                NOT(ISBLANK(CompletionDate)),
                DATEDIFF(MIN('Procurement Project'[Project Actual Start Date]), CompletionDate, DAY),
                DATEDIFF(MIN('Procurement Project'[Project Actual Start Date]), TODAY(), DAY)
            )
        

         

        Hope this helps!! 

  • Hi aqeel_shaikh 

     

    Try this:

    DATEDIFF (
        'table'[project start date],
        COALESCE ( 'table'[project completion  date], TODAY () ),
        DAY
    )
    

    COALESCE will return the first non-blank value so if there's a  value for completion date, that will be the end date else TODAY().

    • aqeel_shaikh's avatar
      aqeel_shaikh
      Icon for Helper III rankHelper III

      getting below error...pls. help!

       

      Ageing(Days) = 
         DATEDIFF(FILTER('Procurement Project','Procurement Project'[Project Actual Start Date].[Date], 
         COALESCE(FILTER('Procurement Project','Procurement Project'[Expected Completion Date].[Date], TODAY() ), DAY
         )))

       

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

        That is to be written as a calculated column.

        Age = 
        DATEDIFF (
            'Table'[Project Actual Start Date],
            COALESCE ( 'Table'[Expected Completion Date], TODAY () ),
            DAY
        )