Forum Discussion

carlenb's avatar
carlenb
Advocate II
2 years ago
Solved

Cumulative progress chart [Model attached]

Hi,   See model with test data here: https://drive.google.com/file/d/1S4G3rC5-SAothJEkQBq2DhXRtWXrM9a3/view?usp=drivesdk   Outout: I want to create the following graph   Test data used i...
  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi carlenb ,

     

    According to your description, here are my steps you can follow as a solution.

    (1) We can create a calculated column.

    Column = IF(ISBLANK('Table'[Reschedule 2]),IF(ISBLANK('Table'[Reschedule 1]),[Contract scheduled done],[Reschedule 1]),[Reschedule 2])

    (2) We can create measures. 

    Measure = 
    var _Actual=CALCULATE(COUNT('Table'[Status]),FILTER(ALLSELECTED('Table'),'Table'[Status]="Done" && [Contract scheduled done]<=TODAY()))
    var _Planned=CALCULATE(COUNT('Table'[Contract scheduled done]),FILTER(ALLSELECTED('Table'),[Contract scheduled done]>TODAY()))
    RETURN IF(MAX('Calendar'[Date])<=TODAY(),_Actual,_Planned)
    Measure 2 = 
    var _Actual=CALCULATE(COUNT('Table'[Status]),FILTER(ALLSELECTED('Table'),'Table'[Status]="Done" && [Contract scheduled done]<=TODAY()))
    var _Forecast=CALCULATE(COUNT('Table'[Column]),FILTER(ALLSELECTED('Table'),[Column]>TODAY()))
    RETURN IF(MAX('Calendar'[Date])<=TODAY(),_Actual,_Forecast)

    (3)Then the result is as follows.

     

    If the above one can't help you get the desired result, please provide your expected result with backend logic and special examples. Thank you.

     

    Best Regards,

    Neeko Tang

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

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi carlenb ,

     

    We can create three measures.

    Actual = 
    var _max_date=CALCULATE(MAX('Table'[Contract done]),FILTER(ALL('Table'),[Status]="Done"))
    var _Actual=CALCULATE(COUNT('Table'[Status]),FILTER(ALLSELECTED('Table'),'Table'[Status]="Done" && [Contract done]<=MAX('Calendar'[Date])))
    RETURN IF(EOMONTH(MAX('Calendar'[Date]),0)<=EOMONTH(_max_date,0),_Actual,BLANK())
    Planned = 
    var _Planned=CALCULATE(COUNT('Table'[Status]),FILTER(ALLSELECTED('Table'),[Contract scheduled done]<=MAX('Calendar'[Date])))
    RETURN _Planned
    Forecast = 
    var _max_date=CALCULATE(MAX('Table'[Contract done]),FILTER(ALL('Table'),[Status]="Done"))
    var _Forecast=CALCULATE(COUNT('Table'[Column]),FILTER(ALLSELECTED('Table'),[Column]<=MAX('Calendar'[Date])))
    RETURN IF(EOMONTH(MAX('Calendar'[Date]),0)>=EOMONTH(_max_date,0),_Forecast,BLANK())

    The x-axis places the date field of the date table. The date table cannot have duplicate dates.

    There can be only one active relationship between the two tables. If you have more than one relationship between the date table and the fact table, you can use the USERELATIONSHIP() function to activate the inactive relationship.

     

     

    Best Regards,

    Neeko Tang

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

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi carlenb ,

     

    Try them. You can create new measures.

    New Actual Measure= CALCULATE (
                [Actual measure],
                USERELATIONSHIP ( FactTable[Date], 'Date'[Date] )
            )
    New Planned Measure= CALCULATE (
                [Planned measure],
                USERELATIONSHIP ( FactTable[Date], 'Date'[Date] )
            )
    New Forecast Measure= CALCULATE (
                [Forecast measure],
                USERELATIONSHIP ( FactTable[Date], 'Date'[Date] )
            )

    Best Regards,

    Neeko Tang

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