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!
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
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!
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