Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[LAMBDA] Eine CAGR-Funktion mit LAMBDA
#1
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)))

   

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste