Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
upaliwije
Creator II
Creator II

Calculation

I have following pivot table in QV doc

Screenshot_1.png

I have calculated the growth from the following expression

(column(2)-column(1))/fabs(column(1))*100

I want to modify this expression to calculate the growth only for NEW and RENEWALS (rows top 2). Accordingly I have written below expression

if(ValueList('NEW','RENEWALS'),(column(2)-column(1))/fabs(column(1)),0)*100

But It does not work. Have I made any mistake pls correct me

1 Solution

Accepted Solutions
Anil_Babu_Samineni

Create in script rather calculated dimension

Load * Inline [

Description

NEW

RENEWALS

NEW+RENEWAL

ADDITIONALS

GROSS PREMIUM

REFUNDS

NET PREMIUM

NET NEW BUSINESS

NET RENEWALS

NET TOTAL

];


Then use this field as dimension and create Table

Description - Dimension


Expression

Pick(Match(Description,'','',...), Sum(...), ....)


Then,

If(Match(Description, 'NEW', 'RENEWALS'),(column(2)-column(1))/fabs(column(1))*100)


Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful

View solution in original post

17 Replies
techvarun
Specialist II
Specialist II

try like below

If (Valuelist('New','Renewal') = 'New',(column(2)-column(1))/fabs(column(1)),0)*100)

techvarun
Specialist II
Specialist II

The entire description column is a value list then you need to include all the values in the value list

For eg

If(ValueList(('New','Renewal',....... 'Net Total) =  'New',(column(2)-column(1))/fabs(column(1)),0)*100),

If(ValueList(('New','Renewal',....... 'Net Total) =  'Renewal',"Formula", etc


If you feel the expression is long, alternatively you can use a variable or Pick and Match function.


effinty2112
Master
Master

Hi Upali,

What about:

if(match(Description,'NEW','RENEWALS'),(column(2)-column(1))/fabs(column(1))*100)


Cheers


Andrew

Anil_Babu_Samineni

Better, If you provide sample application?

Perhaps this?

You can use Column(1) and Column(2) expressions to degrade like Description = {'NEW','RENEWALS'}

OR

If(Match(Description, 'NEW', 'RENEWALS'),(column(2)-column(1))/fabs(column(1))*100)

If not, please let us know your first and second column of expressions?

Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful
upaliwije
Creator II
Creator II
Author

in fact my expression like this

if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'NEW'

,sum({<POL_TYPE={'N'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)//sum({<POL_TYPE={'N'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY = {">=1 <=14" } >}Nos)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'RENEWALS'

,sum({<POL_TYPE={'R'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'NEW+RENEWAL'

,sum({<POL_TYPE={'N','R'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'ADDITIONALS'

,sum({<POL_TYPE={'A'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'GROSS PREMIUM'

,sum({<POL_TYPE={'N','R','A'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'REFUNDS'

,sum({<POL_TYPE={'F'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'NET PREMIUM'

,sum({<RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = ''

,''

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'NET NEW BUSINESS'

,sum({<POL_TYPE={'N'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)+sum({<POL_TYPE={'A'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},HISTORY={'N'},RISK_DAY=$(v1h)>}Nos)+sum({<POL_TYPE={'F'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},HISTORY={'N'},RISK_DAY=$(v1h)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'NET RENEWALS'

,sum({<POL_TYPE={'R'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)+sum({<POL_TYPE={'A'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},HISTORY={'Y'},RISK_DAY=$(v1h)>}Nos)+sum({<POL_TYPE={'F'},RISK_YEAR = {$(=Max(RISK_YEAR)-1)},HISTORY={'Y'},RISK_DAY=$(v1h)>}Nos)

,if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL') = 'NET TOTAL'

,sum({<RISK_YEAR = {$(=Max(RISK_YEAR)-1)},RISK_DAY=$(v1h)>}Nos)

)))))))))))

upaliwije
Creator II
Creator II
Author

Your one works for 1st expression but not after when I add the second expression

Screenshot_1.png

techvarun
Specialist II
Specialist II

if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL')=  'New',(column(2)-column(1))/fabs(column(1))*100,

if(ValueList('NEW','RENEWALS','NEW+RENEWAL','ADDITIONALS','GROSS PREMIUM','REFUNDS','NET PREMIUM','NET NEW BUSINESS','NET RENEWALS','NET TOTAL')=  'New',(column(2)-column(1))/fabs(column(1))*100,

))

Anil_Babu_Samineni

Create in script rather calculated dimension

Load * Inline [

Description

NEW

RENEWALS

NEW+RENEWAL

ADDITIONALS

GROSS PREMIUM

REFUNDS

NET PREMIUM

NET NEW BUSINESS

NET RENEWALS

NET TOTAL

];


Then use this field as dimension and create Table

Description - Dimension


Expression

Pick(Match(Description,'','',...), Sum(...), ....)


Then,

If(Match(Description, 'NEW', 'RENEWALS'),(column(2)-column(1))/fabs(column(1))*100)


Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful
upaliwije
Creator II
Creator II
Author

Thanks all

I will come back to you once I update my document