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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
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