Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
jagdishbr
Contributor III
Contributor III

Error in Creating Dimension for Pie Chart

Hi,

I am working on creating a dimension for a pie chart with the categories 'Top 10 Covered,' 'Rest Covered,' and 'Uncovered.'

The criteria are as follows:

1. Top 10 Covered = period='FY23', profit>0, sum(sales) using rank function 

2. Rest Covered = period='FY23', profit>0, sum(sales) excluding top 10 values

3. Un Covered = period='FY23', profit=0, sum(sales) 

I tried below set expression and end-up as "invalid Dimension"

If(
Rank(Sum({<Period={'FY23'}, profit={'>0'}>} sales), 1, 1) <= 10,
'Top 10 Covered',
If(Sum({<Period={'FY23'}, profit={'>0'}>} sales) > 0,
'Rest Covered',
If(Sum({<Period={'FY23'}, profit={0}}>} sales) >= 0,
'Un covered',
Null()
)
)
)

Am i doing something wrong? Please guide

 

 

Labels (6)
1 Solution

Accepted Solutions
jagdishbr
Contributor III
Contributor III
Author

Thanks Anat and Padma123 for your time and effort in addressing the issue. however, i figured out the solution.

={<period={'FY23'}>}aggr(IF(RANK(sum({<profit={">0"}>}Sales),4)<=$(vSliderValue),'Top $(vSliderValue) Covered',
IF(RANK(sum({<profit={">0"}>}sales),4)>$(vSliderValue),'Rest Covered', 'Un-covered')),client_name)

View solution in original post

3 Replies
anat
Master
Master

You logic should be like below

If rank<=10 then 'top 10', 

If rank >10 and sum(values) not equal 0 then 'rest covered'

else 'unknown'

Padma123
Contributor II
Contributor II

Try This...

load *,If(AutoNumber(sales)<=10 and period='FY23' and profit>0,'Top 10 Covered',
if(period='FY23' and profit=0,'uncoverd','Remaining')) as result;

load * Resident table1
order by sales;

 

In Pie chart

dim-result

measure-sum(sales).

jagdishbr
Contributor III
Contributor III
Author

Thanks Anat and Padma123 for your time and effort in addressing the issue. however, i figured out the solution.

={<period={'FY23'}>}aggr(IF(RANK(sum({<profit={">0"}>}Sales),4)<=$(vSliderValue),'Top $(vSliderValue) Covered',
IF(RANK(sum({<profit={">0"}>}sales),4)>$(vSliderValue),'Rest Covered', 'Un-covered')),client_name)