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: 
asknyldz
Contributor III
Contributor III

Growth Rate Calculation

Hi there,

I can't the calculate Growth Rate, where is the my fault? Here is the contents,

YEAR=SUM(AMOUNT)=(Sum(AMOUNT)/Before(Sum({<YEAR>}AMOUNT)) - 1) * Avg(1)
2013300-
2014400-
2015500-

2016

600-
2017700-
2018800-

Thanks

1 Solution

Accepted Solutions
sunny_talwar

Before is a pivot table function... try above or below

=(Sum(AMOUNT)/Above(Sum({<YEAR>}AMOUNT)) - 1) * Avg(1)

View solution in original post

2 Replies
kruppas78
Contributor III
Contributor III

Hi,

thats how i would do it:

in Script:

Table:
LOAD * INLINE [
YEAR, AMOUNT
2013, 300
2014, 400
2015, 500
2016, 600
2017, 700
2018, 800
]
;

DimYEAR:
LOAD Distinct CHR(39)&CONCAT(YEAR,CHR(39)&','&CHR(39))&CHR(39) AS DimYEAR
RESIDENT Table
ORDER BY YEAR;

LET vDimYEAR = Peek('DimYEAR');

DROP TABLE DimYEAR;

zjzhjfdsgdfgd

Dimension:

IF(ValueList($(vDimYEAR))=MAX(YEAR),SUM({<YEAR={'$(=MAX(YEAR))'}>}AMOUNT)/SUM({<YEAR={'$(=MAX(YEAR-1))'}>}AMOUNT)-1,
IF(ValueList($(vDimYEAR))=MAX(YEAR-1),SUM({<YEAR={'$(=MAX(YEAR-1))'}>}AMOUNT)/SUM({<YEAR={'$(=MAX(YEAR-2))'}>}AMOUNT)-1,
IF(ValueList($(vDimYEAR))=MAX(YEAR-2),SUM({<YEAR={'$(=MAX(YEAR-2))'}>}AMOUNT)/SUM({<YEAR={'$(=MAX(YEAR-3))'}>}AMOUNT)-1,
IF(ValueList($(vDimYEAR))=MAX(YEAR-3),SUM({<YEAR={'$(=MAX(YEAR-3))'}>}AMOUNT)/SUM({<YEAR={'$(=MAX(YEAR-4))'}>}AMOUNT)-1,
IF(ValueList($(vDimYEAR))=MAX(YEAR-4),SUM({<YEAR={'$(=MAX(YEAR-4))'}>}AMOUNT)/SUM({<YEAR={'$(=MAX(YEAR-5))'}>}AMOUNT)-1,
IF(ValueList($(vDimYEAR))=MAX(YEAR-5),SUM({<YEAR={'$(=MAX(YEAR-5))'}>}AMOUNT)/SUM({<YEAR={'$(=MAX(YEAR-6))'}>}AMOUNT)-1
))))))

Pro: Next year will be added without any change and can be sorted by Value

Con: hard coded the amount of years. Here max 6 Years, but can be extended.

Better Solution would be interesting, thanks!

sunny_talwar

Before is a pivot table function... try above or below

=(Sum(AMOUNT)/Above(Sum({<YEAR>}AMOUNT)) - 1) * Avg(1)