Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Woodpecker
New Member

Slicer to filter multiple columns

Hi all,

 

Looking to create a slicer that uses all names in the 'Lead' column from below table. I believe the correct format to follow is from the following video, but after splitting the 'Lead' column by delimeter, there are blank values that create difficulty: https://www.youtube.com/watch?v=UvvS376vYSw.

 

Desired end state is to be able to filter by 'Jane Air' and all prospective clients with her name against them appear.

 

Any help greatly appreciated!

 

Cheers 

 

Prospective ClientRegionLeadStageCurrencyEstimated Revenue Probability (%)Expected close
XXXGermanyJoe BloggsPursuitEUR91060.525-50Q4 2022
YYYGermanyJoe Bloggs, John Doe, Jane AirWinEUR2500050-75Q1 2022
ZZZGermanyJohn Doe, Jane AirLossEUR200000-25Q4 2022
CCCSpainJohn DoeProposalEUR17000075-100Q3 2022
QQQUKJoe Bloggs, John DoePursuitEUR8000025-50Q4 2022
WWWUKJoe Bloggs, John Doe, Jane AirWinEUR15000050-75Q1 2022
QRRFranceJane Air, Joe BloggsLossEUR1400000-25Q4 2022
GGGFranceJane Air, John DoeProposalEUR2500075-100Q3 2022
1 ACCEPTED SOLUTION
Deoljat
Regular Visitor

Hi @Woodpecker 

 

If you create a slicer table from the data table removing all columns except the Lead column, then duplicate the Lead column and use split by delimiter 'column to rows' on the Lead column. You will get a table like below that can be linked to your data table and used to filter by all the names.

 

Also using the Text.Trim function on the Lead column on the slicer table will remove any blank spaces around the names. See M-code below

 

Slicer Table

Joe BloggsJoe Bloggs
Joe BloggsJoe Bloggs, John Doe, Jane Air
John DoeJoe Bloggs, John Doe, Jane Air
Jane AirJoe Bloggs, John Doe, Jane Air
John DoeJohn Doe, Jane Air
Jane AirJohn Doe, Jane Air
John DoeJohn Doe
Joe BloggsJoe Bloggs, John Doe
John DoeJoe Bloggs, John Doe
Jane AirJane Air, Joe Bloggs
Joe BloggsJane Air, Joe Bloggs
Jane AirJane Air, John Doe
John DoeJane Air, John Doe

 

The M-code for slicer table (Replace 'SampleData' with your data table name)

let
    Source = SampleData,
    #"Removed Other Columns" = Table.SelectColumns(Source,{"Lead"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Other Columns"),
    #"Duplicated Column" = Table.DuplicateColumn(#"Removed Duplicates", "Lead", "Lead link"),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Duplicated Column", {{"Lead", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Lead"),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Lead", type text}}),
    #"Trimmed Text" = Table.TransformColumns(#"Changed Type",{{"Lead", Text.Trim, type text}})
in
    #"Trimmed Text"

 

Hope this helps

 

View solution in original post

3 REPLIES 3
Deoljat
Regular Visitor

Hi @Woodpecker 

 

If you create a slicer table from the data table removing all columns except the Lead column, then duplicate the Lead column and use split by delimiter 'column to rows' on the Lead column. You will get a table like below that can be linked to your data table and used to filter by all the names.

 

Also using the Text.Trim function on the Lead column on the slicer table will remove any blank spaces around the names. See M-code below

 

Slicer Table

Joe BloggsJoe Bloggs
Joe BloggsJoe Bloggs, John Doe, Jane Air
John DoeJoe Bloggs, John Doe, Jane Air
Jane AirJoe Bloggs, John Doe, Jane Air
John DoeJohn Doe, Jane Air
Jane AirJohn Doe, Jane Air
John DoeJohn Doe
Joe BloggsJoe Bloggs, John Doe
John DoeJoe Bloggs, John Doe
Jane AirJane Air, Joe Bloggs
Joe BloggsJane Air, Joe Bloggs
Jane AirJane Air, John Doe
John DoeJane Air, John Doe

 

The M-code for slicer table (Replace 'SampleData' with your data table name)

let
    Source = SampleData,
    #"Removed Other Columns" = Table.SelectColumns(Source,{"Lead"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Other Columns"),
    #"Duplicated Column" = Table.DuplicateColumn(#"Removed Duplicates", "Lead", "Lead link"),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Duplicated Column", {{"Lead", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Lead"),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Lead", type text}}),
    #"Trimmed Text" = Table.TransformColumns(#"Changed Type",{{"Lead", Text.Trim, type text}})
in
    #"Trimmed Text"

 

Hope this helps

 

mohammedadnant
Impactful Individual
Impactful Individual

Hi @Woodpecker 

Please see these 2 videos to

Split Columns
https://youtu.be/6nL6cgR5vEU

Columns to rows
https://youtu.be/s7iwN_X82UI

 

and use this 1 single column as your slicer.

 

Did I answer your question? Mark my post as a solution! Appreciate your Kudos!! !!

Thanks & Regards,
Mohammed Adnan
Learn Power BI: https://www.youtube.com/c/taik18

Hi Mohammed - thanks for your response but this doesn't answer my question.  Split by delimeter makes sense; I'm not sure what the 'colums to rows' achieves given that we have multiple text values across a variable number of rows.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.