Forum Discussion

jereaallikko's avatar
jereaallikko
Helper III
4 years ago
Solved

Calculate difference % with all values

Hi,

 

I am facing a problem with calculating % difference. In a nuthsell, I would like to visualize the difference of X and ALL Values in a table separately. An example data and use case below:

Ideally, I am looking for a solution (DAX or something else) to calculate the "Number" difference % between 20943_0003 and the rest of the values separately. Similarly, difference % between 29839_0002 and the rest of the values separately, then 29853_0001 and so on..

The idea is that the user can choose and filter ANY ID and see the % difference to every ID Number.

 

The result what I am looking for is this:

 

 

 

 

 

 

 

Or this:

And same for every Number of each ID. A bit difficult to explain, but hopefully you get the idea. 

 

Is this even possible to do? Anyt tips?

 

Br,

Jere

  • Hi jereaallikko ,

     

    Just as tamerj1 said, you need create a new table with all IDs and don’t create any relationship between these two tables. Then, take the ID column in the new table to create a Slicer.

     

     

    But after that, you need create a Measure like this.

    Difference =
    VAR SelectedID =
        SELECTEDVALUE ( 'NewTable'[ID] )
    VAR SelectedNumber =
        CALCULATE ( MAX ( 'Table'[Number] ), 'Table'[ID] = SelectedID )
    RETURN
        DIVIDE ( MAX ( 'Table'[Number] ) - SelectedNumber, SelectedNumber )

     

    Then the result will look like this.

     

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. If I misunderstand your needs or you still have problems on it, please feel free to let me know. Thanks a lot!

     

    Best Regards,

    Community Support Team _ Caiyun

3 Replies

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

    Hi jereaallikko ,

     

    Just as tamerj1 said, you need create a new table with all IDs and don’t create any relationship between these two tables. Then, take the ID column in the new table to create a Slicer.

     

     

    But after that, you need create a Measure like this.

    Difference =
    VAR SelectedID =
        SELECTEDVALUE ( 'NewTable'[ID] )
    VAR SelectedNumber =
        CALCULATE ( MAX ( 'Table'[Number] ), 'Table'[ID] = SelectedID )
    RETURN
        DIVIDE ( MAX ( 'Table'[Number] ) - SelectedNumber, SelectedNumber )

     

    Then the result will look like this.

     

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. If I misunderstand your needs or you still have problems on it, please feel free to let me know. Thanks a lot!

     

    Best Regards,

    Community Support Team _ Caiyun

  • tamerj1's avatar
    tamerj1
    Community Champion

    Hi jereaallikko 

    you can start with creating simple disconnected Slicer Table. > New Table:

    Slicer Table =
    VALUES ( Table[ID] )

    Then create your difference measure 

    Difference =
    VAR SelectedID =
        SELECTEDVALUE ( 'Slicer Table'[ID] )
    VAR CurrentID =
        SELECTEDVALUE ( Table[ID] )
    RETURN
        IF (
            COUNTROWS ( ALLSELECTED ( 'Slicer Table'[ID] ) ) = 1,
            DIVIDE ( CurrentID - SelectedID, CurrentID )
        )