Clever-Excel-Forum

Normale Version: [LAMBDA] Eine CAGR-Funktion mit LAMBDA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin, 

mich hatte jemand gefragt, ob es möglich ist, eine LAMBDA-Funktion erstellen, die die CAGR (Compound Annual Growth Rate), also die Jährliche Wachstumsrate,
berechnet und zwar in Form der Matrix, wie sie hier unten abgebildet ist. In der Matrix soll sich dann die Berechnung immer auf den vorherigen Wert beziehen.
CAGR bei Wikipedia: https://de.wikipedia.org/wiki/Wachstumsrate

Ich bin zwar jetzt kein Finanzmensch, aber ein bißchen Mathe geht schon. Die LAMBDA-Formel verwendet weitere neue Funktionen, wie MAP und MATRIXERSTELLEN
sowie eine Rekursion. Vielleicht kann jemand die LAMBDA-Formel CAGR gebrauchen. Und ggf. noch optimieren :-)

Code:
=LAMBDA(Input;LET(fnCalculator;LAMBDA(Previous;Current;Periods;WENNFEHLER((Current*Previous^Periods)^(1/(1+Periods))-1;0));
 fnIteratorItem;LAMBDA(Data;Matrix;Item;LET(N;ZEILEN(Matrix);MAP(Matrix;SEQUENZ(N;N);LAMBDA(A;B;LET(X;AUFRUNDEN(B/N;0);Y;
 WENN(REST(B;N)>0;REST(B;N);N);WENN((X<Y)*(B=Item);fnCalculator(1+INDEX(Matrix;X;Y-1);1+INDEX(Data;1;Y);Y-X);A))))));
 fnIterator;LAMBDA(This;Data;Matrix;Iteration;WENN(Iteration>ZEILEN(Matrix)*SPALTEN(Matrix);Matrix;This(This;Data;fnIteratorItem(Data;Matrix;Iteration);Iteration+1)));
 fnIterator(fnIterator;INDEX(Input;1;0);MATRIXERSTELLEN(SPALTEN(INDEX(Input;1;0));SPALTEN(INDEX(Input;1;0));LAMBDA(X;Y;WENN(X=Y;INDEX(INDEX(Input;1;0);1;Y);WENN(X>Y;"";0))));1)))

[attachment=42039]

Gruß