Forum Discussion

kerch007's avatar
kerch007
Frequent Visitor
5 years ago
Solved

How to filter a table

Hi.
Please help me make a measure that would filter my table.
The table should contain only values "group-1" in which there are all values from selected in slicer "group-2"

 

My table:

Group-1Group-2Value
111aaa10
111bbb20
111ccc25
222aaa30
222ccc40
222ddd45
333aaa50
333bbb55

 

 

Exemple1

 

Example 2

 

 

  • AlB's avatar
    AlB
    5 years ago

    kerch007 

    Small change at the end:

    ShowMeasure V2= 
    VAR G2inTable_ =
        CALCULATETABLE ( DISTINCT ( MyTable[Group-2] ), ALL ( MyTable[Group-2] ) )
    VAR G2InSlicer_ =
        DISTINCT ( SlicerT[Group-2] )
    VAR allPresent_ =
        COUNTROWS ( INTERSECT ( G2inTable_, G2InSlicer_ ) ) = COUNTROWS ( G2InSlicer_ )
    RETURN
        IF ( (allPresent_ || NOT ISFILTERED ( SlicerT[Group-2] )) && SELECTEDVALUE(MyTable[Group-2]) IN G2InSlicer_ , 1, 0 )

     

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers 

5 Replies

  • AlB's avatar
    AlB
    Community Champion

    Hi kerch007 

    1. Create a new one-column table with all the values of Group-2 that will be used for the slicer. Let's call it SlicerT

    2. Create this measure: 

     

    ShowMeasure =
    VAR G2inTable_ =
        CALCULATETABLE ( DISTINCT ( MyTable[Group-2] ), ALL ( MyTable[Group-2] ) )
    VAR G2InSlicer_ =
        DISTINCT ( SlicerT[Group-2] )
    VAR allPresent_ =
        COUNTROWS ( INTERSECT ( G2inTable_, G2InSlicer_ ) ) = COUNTROWS ( G2InSlicer_ )
    RETURN
        IF ( allPresent_ || NOT ISFILTERED ( SlicerT[Group-2] ), 1, 0 )

     

    3. Assuming you have the visual you show in place, place [ShowMeasure] in the filters of that visual and select to show when the value of the measure is 1

     

    See it all at play in the attached file.

     

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers 

     

      • AlB's avatar
        AlB
        Community Champion

        kerch007 

        Small change at the end:

        ShowMeasure V2= 
        VAR G2inTable_ =
            CALCULATETABLE ( DISTINCT ( MyTable[Group-2] ), ALL ( MyTable[Group-2] ) )
        VAR G2InSlicer_ =
            DISTINCT ( SlicerT[Group-2] )
        VAR allPresent_ =
            COUNTROWS ( INTERSECT ( G2inTable_, G2InSlicer_ ) ) = COUNTROWS ( G2InSlicer_ )
        RETURN
            IF ( (allPresent_ || NOT ISFILTERED ( SlicerT[Group-2] )) && SELECTEDVALUE(MyTable[Group-2]) IN G2InSlicer_ , 1, 0 )

         

        Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

        Contact me privately for support with any larger-scale BI needs, tutoring, etc.

        Cheers 

  • CNENFRNL's avatar
    CNENFRNL
    Community Champion

    Hi, kerch007 , you might want to try this measure, which isn't that elegant😂

    Val = 
    VAR __sel = ALLSELECTED ( Selector[Group-2] )
    VAR __lv1 =
        CALCULATE (
            DISTINCTCOUNT ( DS[Group-2] ),
            TREATAS ( DISTINCT ( Selector[Group-2] ), DS[Group-2] )
        )
            = COUNTROWS ( __sel )
    VAR __lv2 =
        NOT ISBLANK (
            IF ( ISINSCOPE ( DS[Group-2] ), INTERSECT ( DISTINCT ( DS[Group-2] ), __sel ) )
        )
    RETURN
        IF ( __lv1 && __lv2, MAX ( DS[Value] ) )

    An attached file is at your disposal for more details.