[LAMBDA] Diverse Helferlein
#11
Hallo,

vielen Dank für die Benachrichtigung. Melden werde ich es grundsätzlich. Zumal das definitiv nicht erwartungskonform ist.
Allerdings bin ich mir nicht sicher, ob's wirklich der Namensmanager ist. Denn folgendes:

Code:
DECUM({2;5;7;19}) gespillt ergibt 2;3;2;12
DECUM({2;5;7;19}) in der Bearbeitungszeile mit F9 ergibt 2;-3;-5;-17 (!)

Code:
LAMBDA(x;LET(d;SEQUENZ(ZEILEN(x));INDEX(x;d)-(d>1)*INDEX(x;d-1)))({2;5;7;19}) gespillt ergibt ebenfalls 2;3;2;12
LAMBDA(x;LET(d;SEQUENZ(ZEILEN(x));INDEX(x;d)-(d>1)*INDEX(x;d-1)))({2;5;7;19}) in der Bearbeitungszeile mit F9 ergibt ebenfalls 2;-3;-5;-17 (!)

Somit wird bei F9 immer der erste Wert aus dem Array genommen und mit dem aktuellen subtrahiert (2;2-5;2-7;2-19).
Folgende Funktion liefert mir das richtige Ergebnis (Name, F9, in SUMME)

Code:
=LAMBDA(Daten;MATRIXERSTELLEN(ZEILEN(Daten);1;LAMBDA(X;Y;WENN(X>1;INDEX(Daten;X;1)-INDEX(Daten;X-1;1);INDEX(Daten;X;1)))))({2;5;7;19})

Von daher ist meine Vermutung, dass das implizite Iterieren mit Deiner Variante nicht immer funktioniert. Und jetzt fällt es mir auch wieder ein: das Problem
hatte ich schon mal ganz am Anfang von LAMBDA, als ich LAMBDAs für große Zahlen erstellt hatte und daran lag, dass innerhalb desselben Arrays relativ zur
Position Werte extrahiert und generiert werden sollten, die quasi die alten Werte überschreiben. Das konnte ich nur lösen, indem ich ein neues Array erzeugt
hatte und die Werte dann dort reinkopiert bzw. reingeschrieben hatte.

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
#12
Ich ziehe meinen Hut vor Dir! Bearbeitungsleiste F9 habe ich in meinem Leben noch nie benutzt. :(

Allerdings ergibt das Bearbeitungszelle-LAMBDA mit SUMME umrankt das richtige 19, wo das Namen-Manager-definierte -23 ergibt. Daher ist da doch etwas faul.

Möglicherweise ist Dein Ansatz auch die Lösung dafür, mit SCAN zu entkumulieren. Denn bei meinen Versuchen werden anscheinend immer nur Pärchen behandelt.

So langsam bekomme ich jetzt den Unterschied MATRIXERSTELLEN zu WAHL geregelt. Denn WAHL ist beschränkt, MATRIXERSETLLEN nicht.

Andererseits dachte ich immer, dass innerhalb von LET jede Zuweisung auch wieder eine neue Matrix erstellt.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#13
Hallo,

Danke. Bei mir ergibt F9 über SUMME(LAMBDA( ... ...)) in der Bearbeitungszeile -23 (!) und in der Zelle wird 19 (!) angezeigt.
Nur F9 über die LAMBDA markiert ergibt SUMME({2;-3;-5;-17}). Und SUMME(DECUM({2;5;7;19})) ergibt bei F9 dann auch -23.

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
#14
Hallo,

ich denke mal, SCAN kann nicht mit DECUM funktionieren bzw. macht keinen Sinn hier, weil ja SCAN implizit rekursiv
den davor berechneten Wert nimmt, um den neuen Wert gemäß dem Algo in LAMBDA zu berechnen.

Code:
=LAMBDA(Daten;SCAN(0;Daten;LAMBDA(A;V;V+A)))({1;2;5;3}) => 1;2;5;3 » 1 » 1;1+2=3 » 1;3;5+3=8 » 1;3;8;3+8=11 » 1;3;8;11

SCAN kann also nicht auf den Vorgänger des Originalarrays zugreifen. Anderes Beispiel:

Code:
=LAMBDA(Daten;SCAN("";Daten;LAMBDA(A;V;A&V)))({"a";"b";"c";"d"})

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
#15
DECUM geht mit den neueren Bordmitteln jetzt besser/klarer/kürzer/schnörkellos: =LAMBDA(d;LET(x;VSTAPELN(0;d);WEGLASSEN(x;1)-WEGLASSEN(x;-1)))

(steht so auch schon in PVT)

=SUMME(DECUM(...)) ist damit fehlerfrei. Mit der vorherigen (benannten!) Version weiterhin NICHT.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top


Gehe zu:


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