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

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
cancel
Showing results for 
Search instead for 
Did you mean: 
ABP2021
Contributor II
Contributor II

Top 20%, Middle 60% and Bottom 20% categorization

Hello Friends,

How to categorize the Users base on percentage as Top 20 % , Middle 60 % and Bottom 20%.

Data

NamePercentage 
A5.83%Top 20% 
B5.60%Top 20% 
C3.59%Top 20% 
Z3.51%Top 20% 
E3.35%Middle 60%
F3.35%Middle 60%
G3.35%Middle 60%
H3.35%Middle 60%
N3.35%Middle 60%
O3.35%Middle 60%
K3.35%Middle 60%
L2.89%Middle 60%
M2.65%Middle 60%
Q2.62%Middle 60%
R2.62%Middle 60%
S2.23%Middle 60%
AA2.23%Middle 60%
SS2.15%Middle 60%
DD2.00%Middle 60%
FF1.89%Middle 60%
G1.89%Middle 60%
GG1.82%Middle 60%
HH1.35%Middle 60%
Q1.31%Middle 60%
QQ1.31%Middle 60%
WW1.31%Middle 60%
EE1.31%Middle 60%
RR11.31%Middle 60%
RR21.18%Middle 60%
RR31.18%Middle 60%
RR41.06%Middle 60%
RR51.03%Bottom 20%
RR60.93%Bottom 20%
RR70.85%Bottom 20%
RR80.84%Bottom 20%
RR90.82%Bottom 20%
RR100.77%Bottom 20%
RR110.75%Bottom 20%
RR120.74%Bottom 20%
RR130.74%Bottom 20%
RR140.71%Bottom 20%
RR150.71%Bottom 20%
RR160.71%Bottom 20%
RR170.71%Bottom 20%
RR180.71%Bottom 20%
RR190.71%Bottom 20%
RR200.57%Bottom 20%
RR210.54%Bottom 20%
RR220.54%Bottom 20%
RR230.53%Bottom 20%
RR240.52%Bottom 20%
RR250.50%Bottom 20%
RR260.50%Bottom 20%
RR270.50%Bottom 20%
RR280.50%Bottom 20%
RR290.47%Bottom 20%
RR300.47%Bottom 20%
RR310.47%Bottom 20%
RR320.46%Bottom 20%
RR330.44%Bottom 20%
RR340.42%Bottom 20%
RR350.40%Bottom 20%
RR360.39%Bottom 20%
RR370.37%Bottom 20%
RR380.33%Bottom 20%
RR390.27%Bottom 20%
RR400.26%Bottom 20%
RR410.23%Bottom 20%
RR420.18%Bottom 20%
RR430.09%Bottom 20%
RR440.00%Bottom 20%
RR450.00%Bottom 20%
2 Replies
Saravanan_Desingh
MVP
MVP

Try this,

tab1:
LOAD * INLINE [
    Name, Percentage
    A, 5.83%
    B, 5.60%
    C, 3.59%
    Z, 3.51%
    E, 3.35%
    F, 3.35%
    G, 3.35%
    H, 3.35%
    N, 3.35%
    O, 3.35%
    K, 3.35%
    L, 2.89%
    M, 2.65%
    Q, 2.62%
    R, 2.62%
    S, 2.23%
    AA, 2.23%
    SS, 2.15%
    DD, 2.00%
    FF, 1.89%
    G, 1.89%
    GG, 1.82%
    HH, 1.35%
    Q, 1.31%
    QQ, 1.31%
    WW, 1.31%
    EE, 1.31%
    RR1, 1.31%
    RR2, 1.18%
    RR3, 1.18%
    RR4, 1.06%
    RR5, 1.03%
    RR6, 0.93%
    RR7, 0.85%
    RR8, 0.84%
    RR9, 0.82%
    RR10, 0.77%
    RR11, 0.75%
    RR12, 0.74%
    RR13, 0.74%
    RR14, 0.71%
    RR15, 0.71%
    RR16, 0.71%
    RR17, 0.71%
    RR18, 0.71%
    RR19, 0.71%
    RR20, 0.57%
    RR21, 0.54%
    RR22, 0.54%
    RR23, 0.53%
    RR24, 0.52%
    RR25, 0.50%
    RR26, 0.50%
    RR27, 0.50%
    RR28, 0.50%
    RR29, 0.47%
    RR30, 0.47%
    RR31, 0.47%
    RR32, 0.46%
    RR33, 0.44%
    RR34, 0.42%
    RR35, 0.40%
    RR36, 0.39%
    RR37, 0.37%
    RR38, 0.33%
    RR39, 0.27%
    RR40, 0.26%
    RR41, 0.23%
    RR42, 0.18%
    RR43, 0.09%
    RR44, 0.00%
    RR45, 0.00%
];

tab2:
NoConcatenate
LOAD RowNo() As ID,*
Resident tab1
Order By Percentage Desc;

Left Join(tab2)
LOAD Count(Percentage) As Tot
Resident tab2;

Left Join(tab2)
LOAD *, If(ID/Tot<=.2,'Top 20%',
	If(ID/Tot>.2 And ID/Tot<0.8,'Middle 60%',
		'Bottom 20%'
	)
)	As Output
Resident tab2;

Drop Table tab1;
ABP2021
Contributor II
Contributor II
Author

Hi Saran, i want to doc this in front end, i have tried with below expression its working but when i am selecting any HQ (Name) its group also changes, please suggest how can i bypass that particular field(HQ). below is my expression for Top 30 %

 

=if(
(
rangesum(above(
Num(
Sum(Aggr(
(($(vAch_MQY_PCPM)
/ Count(distinct {<[Division Name]={"$(vDivisionSelection)"}, I_Date={">=$(vCurrentYearStart)<=$(vCurrentDate)"}, CalendarYear=,T_Month, Period_INL=>} [MR Name]) )
/ $(vPCPM_Month))
,HQ))
/
Sum(total {<HQ=>}
Aggr(
((
$(vtest)
/ Count(distinct {<[Division Name]={"$(vDivisionSelection)"},HQ=, I_Date={">=$(vCurrentYearStart)<=$(vCurrentDate)"}, CalendarYear=,T_Month, Period_INL=>} [MR Name])
)
/ $(vPCPM_Month)),
HQ))
,'0.00%')
,0,RowNo()))
)
<=.30,

(
Num(
Sum(Aggr(
(($(vAch_MQY_PCPM)
/ Count(distinct {<[Division Name]={"$(vDivisionSelection)"}, I_Date={">=$(vCurrentYearStart)<=$(vCurrentDate)"}, CalendarYear=,T_Month, Period_INL=>} [MR Name]) )
/ $(vPCPM_Month))
,HQ))
/
Sum(total {<HQ=>}
Aggr(
((
$(vtest)
/ Count(distinct {<[Division Name]={"$(vDivisionSelection)"},HQ=, I_Date={">=$(vCurrentYearStart)<=$(vCurrentDate)"}, CalendarYear=,T_Month, Period_INL=>} [MR Name])
)
/ $(vPCPM_Month)),
HQ))
,'0.00%')
)
)