Forum Discussion

DokterT's avatar
DokterT
New Member
5 years ago
Solved

partial string filter based multiple selectedvalues

Hi all,

 

I've been looking all over the web to achieve something (that might not even work in PowerBI).
Anyhow, hopefully one of you is able to help me out here πŸ™‚

This is my problem;

I have a fact table with a Group-Name column, that sometimes contain multiple Group-names.

In order to filter this table i have created an unrelated filter table with all the relevant group names; (which is used as a slicer-list visual).

 

_Type_Filter =
DATATABLE (
"Subgroup", STRING,{{"Group01", etc}})

 

On the basis of de slicer-selection the table is filtered if the value of underlying formula is unequal to 1.

 

FilterText =
VAR searchvalue =
SEARCH (
SELECTEDVALUE( _Typen_Filter[Subgroup] ),
SELECTEDVALUE(Facttable[GroupColomn]),,
BLANK())
return
IF(searchvalue>0,1,0)

 

This works as long as there is only 1 selectedvalue in de subgroup filter selection. 

I just cant seem to get 2 or more values working. 


I have tried to change it to allselected, but this doesnt seem to do the trick. 

 

What am I doing wrong, and is it even possible in PowerBI?

 

Thanks in advance !!

 

  • DokterT 

    I'm not sure exactly how you want to use this so I've created one of the alternatives. With it you can see the code pattern and adapt it as necessary.

    1. Place FactT[Group] in a table visual

    2.  Place SlicerT[Group] on a slicer

    3. Create this measure. :

     

    Show measure =
    COUNTROWS (
        FILTER (
            DISTINCT ( SlicerT[Group] ),
            SEARCH ( SlicerT[Group], SELECTEDVALUE ( FactT[Group] ), 1, 0 ) > 0
        )
    ) + 0

     

    4. Set the measure above as a filter for the table visual. Choose Show then value is greater than 0. This will filter out the unwanted rows in tehe visual.

    See it all at work in the attached file with some simplified tables

     

     

    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 

4 Replies

  • AlB's avatar
    AlB
    Community Champion

    DokterT 

    I'm not sure exactly how you want to use this so I've created one of the alternatives. With it you can see the code pattern and adapt it as necessary.

    1. Place FactT[Group] in a table visual

    2.  Place SlicerT[Group] on a slicer

    3. Create this measure. :

     

    Show measure =
    COUNTROWS (
        FILTER (
            DISTINCT ( SlicerT[Group] ),
            SEARCH ( SlicerT[Group], SELECTEDVALUE ( FactT[Group] ), 1, 0 ) > 0
        )
    ) + 0

     

    4. Set the measure above as a filter for the table visual. Choose Show then value is greater than 0. This will filter out the unwanted rows in tehe visual.

    See it all at work in the attached file with some simplified tables

     

     

    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

    DokterT 

    You can probably use CONCATENATEX( ) to get all the entries from the slicer in one string.  For a more accurate answer I would need you to provide an example based on sample data of how things would work. I get the broad idea but need more details.

     

    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 

  • AlBThanks for the advice, will try and get that to work.

    As for a sample with fictional names (fruits/veggies might not be the best reallife example but you get the point hopefully);

     

    The unrelated filter table contains one column with the follwing groups;

    - "Apples"
    - "Bananas"

    - "Melons"

    - "Onions"

    - "Potatoes"

     

    Sample of facts table;

    ActivityID | Group                      | Details 

    123212         | Potatoes // Onions  | jalfjklajf
    142232         | Potatoes                  | kjfkljakdfa
    154767         | Melons                    | jkdhflahfhajkf
    234234         | Bananas // Melons  | dadfjhejks

    So what I basically want to achieve is to filter the fact table based on the selection in the unrelated filter table.

    Hence, selecting potatoes will give me;

    ActivityID | Group                      | Details 

    123212         | Potatoes // Onions  | jalfjklajf
    142232         | Potatoes                  | kjfkljakdfa

    Selecting Melons AND Onions should give me;

    ActivityID | Group                           | Details 

    123212         | Potatoes // Onions  | jalfjklajf
    154767         | Melons                    | jkdhflahfhajkf
    234234         | Bananas // Melons  | dadfjhejks

     

    And all other variations based on multiple selections.