Forum Discussion

johnmay's avatar
johnmay
Regular Visitor
6 years ago
Solved

Urgent! Measure Days diff same ID any status

Hello people! Please, I need help to create a measure that is able to analyze the range of days from an "accept" status to the next in the same ID. However, there are 3 different scenarios:   1067...
  • Greg_Deckler's avatar
    Greg_Deckler
    6 years ago

    Maybe:

     

    Measure = 
        VAR __Table = 'Table'
        VAR __States = SELECTCOLUMNS(__Table,"State",[State])
        VAR __MaxDate = MAX('Table'[STATE DATE])
        VAR __MaxStatus = MAXX(FILTER('Table',[STATE DATE] = __MaxDate),[State])
    RETURN
        SWITCH(TRUE(),
            "Proposal" IN __States,
                    VAR __date1 = MAXX(FILTER(__Table,[State] = "Proposal"),[STATE DATE])
                    VAR __date2 = MAXX(FILTER(__Table,[State] = "Accept"),[STATE DATE])
                RETURN
                    (__date1 - __date2) * 1.,
            __MaxStatus = "Accept",(TODAY() - __MaxDate) * 1.,
                VAR __date1 = MAXX(FILTER(__Table,[State] = "Accept"),[STATE DATE])
                VAR __date2 = MINX(FILTER(__Table,[State] <> "Accept" && [STATE DATE] > __date1),[STATE DATE])
            RETURN
                (__date2 - __date1) * 1.
        )

     

    PBIX is attached.

  • v-deddai1-msft's avatar
    6 years ago

    Hi,

     

    Would you please try to create a measure for calculating datediff for every situation:

     

    Measure =

    VAR A =

        CALCULATE (

            VALUES ( 'Table'[STATE DATE] ),

            FILTER (

                'Table',

                'Table'[Work Item Id] = MAX ( 'Table'[Work Item Id] )

                    && 'Table'[State] = "proposal"

            )

        )

    VAR B =

        CALCULATE (

            VALUES ( 'Table'[STATE DATE] ),

            FILTER (

                'Table',

                'Table'[Work Item Id] = MAX ( 'Table'[Work Item Id] )

                    && 'Table'[State] = "Accept"

            )

        )

    VAR C =

        CALCULATE (

            MAX ( 'Table'[STATE DATE] ),

            FILTER ( 'Table', 'Table'[Work Item Id] = MAX ( 'Table'[Work Item Id] ) )

        )

    RETURN

        SWITCH (

            TRUE (),

            NOT ( A = BLANK () ), DATEDIFF ( B, A, DAY ),

            B = C, DATEDIFF ( B, TODAY (), DAY ),

            DATEDIFF ( B, C, DAY )

        )

     

    Then create a measure to calculate their average:

     

    Measure 2 = AVERAGEX(SUMMARIZE('Table','Table'[Work Item Id],"_datediff",[Measure]),[_datediff])

    For more details, please refer to the pbix file:  https://qiuyunus-my.sharepoint.com/:u:/g/personal/pbipro_qiuyunus_onmicrosoft_com/EdhMBMaKqgpPlfRD9IwGZu8B72HelpwkWMI3OEf6BzKhmQ?e=ErDYgp

     

    Best Regards,

    Dedmon Dai