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-Funktionen in Excel
#31
Im Video gibt es noch den Hinweis auf http://aka.ms/calcintel.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#32
Neues zum Lambda-Editor.

https://techcommunity.microsoft.com/t5/e...ue#M117696


Zitat:Andy Gordon and Jack Williams from Microsoft Research revealed that the LAMBDA editor add-in they've been working on should be available via the Microsoft Store sometime in the near future. Video should be available here, under the "ACCESS" section, first session, around hour 10 of the Teams recording.  What they demo'ed today has syncing with GitHub, which would be helpful in managing LAMBDA versioning, but overall it looks like there are some nice improvements!
Der Talk beginnt bei ca. 10:03 und der Editor wird ab ca. 10:15 gezeigt.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#33
Der Talk von Charles Williams zum Thema LAMBDA() beginnt bei ca. 04:17.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#34
Eine Frage an die, die sich bereits mit LAMBDA beschäftigen:

Angenommen, ich definiere mit dem Excel-Namensmanager eine benannte Lambda-Fkt. wie 
ARRAY.COMBINE(a;b), die mir die 2 Arrays a und b untereinanderhängt.

So weit, so gut.

Frage: Muss ich die immer extra im Blatt mitdefinieren, wenn ich eine sie aufrufende Lambda-Fkt. verwende? 
Oder kann ich sie auch in letzterer erneut definieren (also unerkannt "wrappen", nur "zum mehrfachen internen Gebrauch" durch die äußere Funktion, mit wechselnden Argumenten).

ARRAY.COMBINE (hier einfach abgekürzt auf AR.C) benannt mit
=LAMBDA(a;b;LET(
x;ZEILEN(a);y;SPALTEN(a);z;ZEILEN(b);
k;SEQUENZ(x);m;SEQUENZ(x+z);n;SEQUENZ(;y);
WENN(m<=x;INDEX(a;k;n);INDEX(b;m-x;n)))) funktioniert als allgemeines Tool.

Ich will nun etwa so etwas haben:

=LAMBDA(irgendwas;LET(
blabla;blabla;
AR.C;LAMBDA(a;b;LET(
x;ZEILEN(a);y;SPALTEN(a);z;ZEILEN(b);
k;SEQUENZ(x);m;SEQUENZ(x+z);n;SEQUENZ(;y);
WENN(m<=x;INDEX(a;k;n);INDEX(b;m-x;n))));
AR.C({11.12};AR.C(({1.2;3.4};{5.6;7.8;9.10}))
))

Die Benennung des allgemeinen LAMBDAs AR.C (für mehrfachen Gebrauch) soll also innerhalb eines Spezial-LAMBDAs stattfinden.

Das Problem ist sicherlich, dass a und b nicht einfach so virtuell als Platzhalter dienen können, da sie bekannt gemacht sein müssen. Sie müssen "außen" definiert sein (im "blabla"), so dass AR.C nicht mehrfach und verschieden verwendbar wäre.

Ergebnis soll sein:
11 12
01 02
03 04
05 06
07 08
09 10

Falls es doch geht, wie wäre dann die Syntax? Vielen Dank!
Antworten Top
#35
Hallo,

wenn ich Dich richtig verstehe: ja, Du kannst LAMBDAs "intern" als Hilfsfunktionen definieren und verwenden. An Deinem Beispiel sähe das so aus:

Code:
=LAMBDA(Irgendwas;LET(
  fnCombine;LAMBDA(a;b;LET(x;ZEILEN(a);y;SPALTEN(a);z;ZEILEN(b);k;SEQUENZ(x);m;SEQUENZ(x+z);n;SEQUENZ(;y);WENN(m<=x;INDEX(a;k;n);INDEX(b;m-x;n))));
  vnResult;fnCombine({11.12};fnCombine({1.2;3.4};{5.6;7.8;9.10}));
  vnResult))(1)

fnCombine wäre dann ARRAY.COMBINE intern, die in vnResult aufgerufen wird. Punkte in den Namen der internen LAMBDAs sollten eher vermieden werden.
Auch das hier geht. Argumente werden nach unten durchgereicht.

Code:
=LAMBDA(Irgendwas;LET(
  vnArgEins;{11.12};
  vnArgZwei;{1.2;3.4};
  vnArgDrei;{5.6;7.8;9.10};
  fnCombine;LAMBDA(a;b;LET(x;ZEILEN(a);y;SPALTEN(a);z;ZEILEN(b);k;SEQUENZ(x);m;SEQUENZ(x+z);n;SEQUENZ(;y);WENN(m<=x;INDEX(a;k;n);INDEX(b;m-x;n))));
  vnResult;fnCombine(vnArgEins;fnCombine(vnArgZwei;vnArgDrei));
  vnResult))(1)

Ganz allgemein wäre eine Syntax da so...

Code:
=LAMBDA(Argument;LET(fnSumme;LAMBDA(X;Y;X+Y);fnProdukt;LAMBDA(X;Y;X*Y);vnResult;Argument+fnSumme(10;10)+fnProdukt(5;5);vnResult))(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
#36
Scheint geklappt zu haben. Danke Dir!
Antworten Top


Gehe zu:


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