Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Eugene81
Contributor II
Contributor II

Filter/Select Multiple Characteristics with multiple values

Hello Everyone,

I have a case where the data looks like this exemple :

Product Number Characteristics Value
1101 Color Blue
1102 Color Green
1105 Size S
1104 Size M
1103 Size L
1102 Size XL
1101 Size XXL
1102 Length 50''
1103 Length 30''
1101 Length 20''

 

I would like to be able to show a first filter pane that shows all the characteristics :

Eugene81_1-1731399330401.png

 

Then when I choose for instance Color and Length, I want that 2 filter pane "showed up" with specifics values

Eugene81_1-1731400377648.png

 

Finally when I choose Blue and XXL, I would like to see the results of product number here 1101 in a table :

Eugene81_4-1731399509350.png

screen caps are only for final visualization 

Don't know at the time if it is possible but any help would be appreciated,

thanks in advance.

 

#QlikSense #FilterPane #DataFiltering

 

 

 

 

 

 

 

 

Labels (1)
1 Solution

Accepted Solutions
Kushal_Chawda

@Eugene81  for that you first need to transform Rows to the column. 

 

Data:
Load * Inline [
Product Number	Characteristics	Value
1101	Color	Blue
1102	Color	Green
1105	Size	S
1104	Size	M
1103	Size	L
1102	Size	XL
1101	Size	XXL
1102	Length	50''
1103	Length	30''
1101	Length	20''](delimiter is '\t');

// It will be used for filter, and stay as Island table
Characteristics:
Load FieldValue('Characteristics',RecNo()) as Characteristics
AutoGenerate FieldValueCount('Characteristics');

Final:
Load FieldValue('Product Number',RecNo()) as [Product Number]
AutoGenerate FieldValueCount('Product Number');

let vCounter =1;

let vCount_Characteristics = FieldValueCount('Characteristics');

do while vCounter <= vCount_Characteristics

let vCharacteristics = FieldValue('Characteristics',vCounter);

Left Join(Final)
Load [Product Number],
     Value as [$(vCharacteristics)]
Resident Data
where Characteristics = '$(vCharacteristics)';

let vCounter = vCounter+1;

let vCharacteristics =Null();

Loop

Drop Table Data;

 

Screenshot 2024-11-12 at 14.33.14.png

1)  Add characteristics to the filter object. (From Island table)

2) Add 3 container with 3 filter objects for Color, Size and Length. Color,Size and Length now will be separate column in the table.

3) Put below show condition for individual container filter

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Color*') // Color

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Size*') //Size

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Length*') //Length

Screenshot 2024-11-12 at 14.39.17.png

View solution in original post

5 Replies
Kushal_Chawda

@Eugene81  You can follow below steps

1)  Add characteristics to the filter object.

2) Add 3 container with 3 filter objects for color, size and length with below expressions

=aggr(only({<Characteristics={"Color"}>}Value),Value) // Color

=aggr(only({<Characteristics={"Size"}>}Value),Value) //Size

=aggr(only({<Characteristics={"Length"}>}Value),Value) //Length

3) Put below show condition for individual container filter

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Color*') // Color

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Size*') //Size

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Length*') //Length

Screenshot 2024-11-12 at 10.56.52.pngScreenshot 2024-11-12 at 10.57.00.pngScreenshot 2024-11-12 at 10.57.07.pngScreenshot 2024-11-12 at 10.57.16.png

 

Eugene81
Contributor II
Contributor II
Author

Thank you Kushal_Chawda.

It works great to show filter pane with possible value

But when i choose Blue in color (the first filter pane) the two other (Size and length) are blank now

Eugene81_0-1731420239181.png

 

Kushal_Chawda

@Eugene81  for that you first need to transform Rows to the column. 

 

Data:
Load * Inline [
Product Number	Characteristics	Value
1101	Color	Blue
1102	Color	Green
1105	Size	S
1104	Size	M
1103	Size	L
1102	Size	XL
1101	Size	XXL
1102	Length	50''
1103	Length	30''
1101	Length	20''](delimiter is '\t');

// It will be used for filter, and stay as Island table
Characteristics:
Load FieldValue('Characteristics',RecNo()) as Characteristics
AutoGenerate FieldValueCount('Characteristics');

Final:
Load FieldValue('Product Number',RecNo()) as [Product Number]
AutoGenerate FieldValueCount('Product Number');

let vCounter =1;

let vCount_Characteristics = FieldValueCount('Characteristics');

do while vCounter <= vCount_Characteristics

let vCharacteristics = FieldValue('Characteristics',vCounter);

Left Join(Final)
Load [Product Number],
     Value as [$(vCharacteristics)]
Resident Data
where Characteristics = '$(vCharacteristics)';

let vCounter = vCounter+1;

let vCharacteristics =Null();

Loop

Drop Table Data;

 

Screenshot 2024-11-12 at 14.33.14.png

1)  Add characteristics to the filter object. (From Island table)

2) Add 3 container with 3 filter objects for Color, Size and Length. Color,Size and Length now will be separate column in the table.

3) Put below show condition for individual container filter

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Color*') // Color

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Size*') //Size

=GetSelectedCount(Characteristics)>0 and WildMatch(GetFieldSelections(Characteristics),'*Length*') //Length

Screenshot 2024-11-12 at 14.39.17.png

Eugene81
Contributor II
Contributor II
Author

It's perfect, thank you my friend !

Kushal_Chawda

glad it worked