Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us to spark ideas for how to put the latest capabilities into action. Register here!
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