Forum Discussion

Roym's avatar
Roym
Helper IV
4 years ago

Session result calculation based (including previous result)

I have a table with a long list of assessment results, both the test and review, and based on that I need to calculate the New_Result.

 

What I need to do is determine the New_Result based on the previous sessions. 

 
1. If the test is effective, and the review is also effective -> New result = Effective
2. If test is effective, and review is Ineffective -> New result = Ineffective 
3. If the test is effective, and the review is Open -> New result = the review result from the previous assessment.
(Review is always prefered above the test result)
 

Now I have this working (with some previous help) as shown below. But the only thing that I havn't figgured out yet is that the calculation should also keep the session number in mind. So in the below example it works until ID=4, but ID=5 is not correct anymore because it still followes the logic, but should start over again because the session number is not 1 anymore but 2.

 

I have also the code and Pbix file attached. Hopefully someone can give me some guidance on how to solve this 🙂

 

 

Column =
var _previosid=MAXX(filter('Table','Table'[Test]=EARLIER('Table'[Test])&& 'Table'[ID]<EARLIER('Table'[ID])),'Table'[ID])
var _review=CALCULATE(MAX('Table'[Review]),FILTER('Table','Table'[ID]=_previosid))
return
SWITCH(TRUE(),'Table'[Test]="Effective" && 'Table'[Review]="Effective","Effective",
'Table'[Test]="Effective" && 'Table'[Review]="Ineffective","Ineffective",
'Table'[Test]="Effective" && 'Table'[Review]="Open",_review)
 

7 Replies

  • Roym , I think it should be session in first Var

     

    Column =
    var _previosid=MAXX(filter('Table','Table'[session]=EARLIER('Table'[session])&& 'Table'[ID]< EARLIER('Table'[ID])),'Table'[ID])
    var _review=CALCULATE(MAX('Table'[Review]),FILTER('Table','Table'[ID]=_previosid))
    return
    SWITCH(TRUE(),'Table'[Test]="Effective" && 'Table'[Review]="Effective","Effective",
    'Table'[Test]="Effective" && 'Table'[Review]="Ineffective","Ineffective",
    'Table'[Test]="Effective" && 'Table'[Review]="Open",_review)

    • Roym's avatar
      Roym
      Helper IV

      amitchandak  Nicee, this (almost) works! Not sure why, but for the first new session (2) it keeps the column empty, any idea how to fix that? The rest is working perfectly now!! Thanks

       

       

      • Anonymous's avatar
        Anonymous
        Not applicable

        HI Roym,

        The expression is calculated based on the current session group, so the highlight row can't find out previous records with the same session group to calculate.

        For this scenario, it means you need to add a condition to check if the current row is the first row, then you can use the current id to find out the previous id and use it as a condition to calculate.

        Regards,

        Xiaoxin Sheng

  • CNENFRNL's avatar
    CNENFRNL
    Community Champion

    I'm wondering the use of [Test] column since all values are the same.

    • Roym's avatar
      Roym
      Helper IV

      Not sure what you exactly mean with this? Is there something I need to adjust in the 'test' column?

  • Anyone any idea how to solve this last item, the one missing result in the calculted column?