Showing results for 
Search instead for 
Did you mean: 
Frequent Visitor

Creating slicers for values in order to choose which value we want for each column

Hello everyone,


I tried to look for a similar question but it's been quite difficult since I'm having trouble phrasing what I want (as the title shows).


I have a table that looks like this:

PersonSkill 1Skill 2Skill 3Skill 4Skill 5Skill 6
Person 1BeginnerAdvancedBeginnerIntermediateBeginnerBeginner
Person 2AdvancedAdvancedIntermediateIntermediateAdvancedBeginner
Person 3BeginnerAdvancedAdvancedIntermediateAdvancedBeginner
Person 4BeginnerIntermediateIntermediateBeginnerAdvancedAdvanced
Person 5IntermediateBeginnerBeginnerBeginnerBeginnerAdvanced


I'd like to create 3 slicers (one for each skill level) that would have all the columns "Skill" as possible values. That way, I could filter on the rows based on the skill level of the chosen columns.


Basically, I would have:

- Slicer 1: Beginner

- Slicer 2: Intermediate

- Slicer 3: Advanced

Each slicer would have "Skill 1", "Skill 2", "Skill 3", "Skill 4", and "Skill 5" as possible values.


That way, if I select "Skill 1" on slicer Beginner, I would get the rows for Person 1, 3, and 4.

If I select "Skill 1" on slicer Beginner and "Skill 3" on slicer Advanced, I would get the row for Person 3.

If I select "Skill 2" and "Skill 3" on Intermediate and "Skill 5" on Advanced, I would get Person 4, an so on.


Thank you for your help!

Solution Supplier
Solution Supplier

As @pranit828 suggests you have to unpivot your data. Power BI works with tables that are easy to filter, which means they should be long but narrow as opposed to short and wide.
Super User II
Super User II

HI @Twelve 

I would unpivot all 6 Skill columns,


Then My table would look like as below


Here is the M query if it helps:


    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkgtKs7PUzBU0lFySk3PzMtLLQIyHVPKEvOSU1NQRT3zSlKLclNTMhNLUlFl4MxYHbiRRqjmIDHRzEHjYrMbyVhjnC7FbQMBI03wehO3r7HZjWSsKXFBhouJMDIWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Person = _t, #"Skill 1" = _t, #"Skill 2" = _t, #"Skill 3" = _t, #"Skill 4" = _t, #"Skill 5" = _t, #"Skill 6" = _t]),
    #"Unpivoted Only Selected Columns" = Table.Unpivot(Source, {"Skill 1", "Skill 2", "Skill 3", "Skill 4", "Skill 5", "Skill 6"}, "Attribute", "Value"),
    #"Renamed Columns" = Table.RenameColumns(#"Unpivoted Only Selected Columns",{{"Attribute", "Skill"}, {"Value", "Level"}})
    #"Renamed Columns"



Then I would create a slicer like.


And now when you project your person's name in the table, it will display only those who have the selection.


Also, you can have level on different slicers as you need.

Hope it resolves your issue? 
Please consider accepting it as the solution to help the other members find it more quickly.

Appreciate your Kudos, Press the thumbs up button!!👍

Oh, it seems like I can only select one value at a time.

Is there a way to allow for multiple selection, such as "Skill 1" in the "Beginner" category and "Skill 2" in the "Advanced" one?


Thank you!

Thank you @pranit828, it works perfectly!

I am still new to power BI and I never realized that it was possible to use two columns in a slicer.


Thank you @daxer-almighty for your input, I'll keep that in mind for when I'm stuck 🙂

Helpful resources


Happy New Year from Power BI

This is a must watch for a message from Power BI!

December Update

Check it Out!

Click here to read more about the December 2020 Updates!

Community Blog

Check it Out!

Click here to read the latest blog and learn more about contributing to the Power BI blog!

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

Mark your calendars and join us for our next Power BI Dev Camp!.

Top Solution Authors
Top Kudoed Authors