Forum Discussion

Banistas's avatar
Banistas
Helper I
5 years ago
Solved

Create measure excluding current selection

Hi,

 

I want to create a measure that will make a calculation excluding the current selection from it.

 

Easier to explain with a simple example, so here I go. 

 

Let's assume I have the following data table:

Persons

Number of Pets

Lucy

6

Gabi

2

Martin

3

 

And now, let say I want to create a measure named Number of Pets Excluding You that will sum the Number of Pets for all the Persons, excluding the one that is "currently" selected. So, I want o end up with a Simple Table that displays as follows: 

 

Persons

Number of Pets Excluding You

Lucy

5

Gabi

9

Martin

8

 

Where the Number of Pets Excluding You was 5 for Lucy (Gabi has 2 + Martin has 3), 9 for Gabi (Lucy has 6 + Martin has 3), and 8 for Martin (Lucy has 6 + Gabi has 2).  

 

How can this be achieved?

 

Thanks. 

 

  • Anonymous's avatar
    Anonymous
    5 years ago

    Hello @Banistas

    Something along these lines using the EXCEPT function should work, assuming you have a [Number of Pets] measure:

    Number of Pets Excluding You =
    CALCULATE (
        [Number of Pets],
        EXCEPT ( ALL ( YourTable[Persons] ), VALUES ( YourTable[Persons] ) )
    )

    Using ALL ( YourTable[Persons] ) ensures that you always get the total of all people other than filtered people. You can consider ALLSELECTED if there is an external filter on the people you want to use instead of everyone in the dataset.

    Best regards

    Owen

3 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hello @Banistas

    Something along these lines using the EXCEPT function should work, assuming you have a [Number of Pets] measure:

    Number of Pets Excluding You =
    CALCULATE (
        [Number of Pets],
        EXCEPT ( ALL ( YourTable[Persons] ), VALUES ( YourTable[Persons] ) )
    )

    Using ALL ( YourTable[Persons] ) ensures that you always get the total of all people other than filtered people. You can consider ALLSELECTED if there is an external filter on the people you want to use instead of everyone in the dataset.

    Best regards

    Owen

    • Banistas's avatar
      Banistas
      Helper I

      Thanks @OwenAugerFon. This does exactly what I needed, and can be applied for cases where there are calculations other than SUM which is brilliant.