Forum Discussion

mgcchkn's avatar
mgcchkn
Frequent Visitor
3 years ago
Solved

Percent deviation from previous value

IndexNameTest DateTest StatusTest DurationCurrent TestPrevious Test
331891John8/10/2022APPROVED24200 
331892John5/4/2022APPROVED2471 
331893John7/6/2022APPROVED241066 
331894John6/17/2022APPROVED24228 
331895John9/17/2020APPROVED24113 

 

Above is my sample data.

 

I'm trying to figure out percentage of deviation from previous test.  I can't even figure out how to get the previous test to show up in the Previous Test column.  Ultimately, there would be a 8th column that had the percentage of deviation.

 

As you can see, the index column is missing some numbers because of filtering.  So these tests are for a particular "student" which is filtered via a drill through with a measure called "selected_student."  (selected_student = var selected_student = SELECTEDVALUE(student[name]) return "Test History for Student: " & UNICHAR(10) & selected_student)

 

Thanks in advance! I've been working on this and googling it for 2 days and can't figure it out.

  • Hi, mgcchkn 

    Take a try formula like below:

    Previous Test = 
    VAR _PreviousTestDate =
        CALCULATE (
            MAX ( Student[Test Date] ),
            FILTER (
                ALL ( Student ),
                Student[Name] = MAX ( Student[Name] )
                    && Student[Test Date] < MAX ( Student[Test Date] )
            )
        )
    RETURN
        CALCULATE (
            MAX ( Student[Current Test] ),
            FILTER (
                ALL ( Student ),
                Student[Name] = MAX ( Student[Name] )
                    && Student[Test Date] = _PreviousTestDate
            )
        )
    Percenatge = DIVIDE(MAX(Student[Current Test])-[Previous Test],[Previous Test])

    Best Regards,
    Community Support Team _ Eason

3 Replies

  • mgcchkn's avatar
    mgcchkn
    Frequent Visitor

    I figured it out, but it takes forever for it to load now.  It takes between 60-90 seconds.

    • v-easonf-msft's avatar
      v-easonf-msft
      Community Support

      Hi, mgcchkn 

      Take a try formula like below:

      Previous Test = 
      VAR _PreviousTestDate =
          CALCULATE (
              MAX ( Student[Test Date] ),
              FILTER (
                  ALL ( Student ),
                  Student[Name] = MAX ( Student[Name] )
                      && Student[Test Date] < MAX ( Student[Test Date] )
              )
          )
      RETURN
          CALCULATE (
              MAX ( Student[Current Test] ),
              FILTER (
                  ALL ( Student ),
                  Student[Name] = MAX ( Student[Name] )
                      && Student[Test Date] = _PreviousTestDate
              )
          )
      Percenatge = DIVIDE(MAX(Student[Current Test])-[Previous Test],[Previous Test])

      Best Regards,
      Community Support Team _ Eason

      • mgcchkn's avatar
        mgcchkn
        Frequent Visitor

        That worked great!  Thank you!!!