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] In NACHZEILE verwendete Funktion dynamisieren
#1
Hallo,

folgend an dem Beispiel zu NACHZEILE, wie sich eine erwartete LAMBDA-Funktion insoweit parametrisieren lässt, dass eine bestimmte
Excel-Funktion aufgerufen wird. Beispielsweise SUMME oder MITTELWERT.

Angenommen wir haben im Bereich A1:B2 die Zahlen 1 bis 6 stehen, erzeugt durch SEQUENZ(3;2). Das sieht dann so aus:

Code:
  | A | B |
1 | 1 | 2 |
2 | 3 | 4 |
3 | 5 | 6 |

Möchte ich nun NACHZEILE anwenden, kann ich bspw. folgende Formeln verwenden. Als Array ist dann hier jeweils eine
einzelne Zeile des Bereichs zu sehen.

Code:
Summe      : =NACHZEILE($A$1:$B$3;LAMBDA(Array;SUMME(Array)))
Mittelwert : =NACHZEILE($A$1:$B$3;LAMBDA(Array;MITTELWERT(Array)))
Min        : =NACHZEILE($A$1:$B$3;LAMBDA(Array;MIN(Array)))
Max        : =NACHZEILE($A$1:$B$3;LAMBDA(Array;MAX(Array)))

Das kann ich aber auch umformen in:

Code:
Summe      : =NACHZEILE($A$1:$B$3;LAMBDA(Array;LAMBDA(SUMME(Array))()))
Mittelwert : =NACHZEILE($A$1:$B$3;LAMBDA(Array;LAMBDA(MITTELWERT(Array))()))
Min        : =NACHZEILE($A$1:$B$3;LAMBDA(Array;LAMBDA(MIN(Array))()))
Max        : =NACHZEILE($A$1:$B$3;LAMBDA(Array;LAMBDA(MAX(Array))()))

Da die Funktionen jetzt jeweils in einer LAMBDA-Funktion verpackt sind, können wir diese schon mal zusammenführen, was dann ergibt:

Code:
=NACHZEILE($A$1:$B$3;LAMBDA(Array;LAMBDA(WAHL(1;SUMME(Array);MITTELWERT(Array);MIN(Array);MAX(Array)))()))

Parametrisieren wir nun die 1 in WAHL und übergeben die 1 als Argument:

Code:
=NACHZEILE($A$1:$B$3;LAMBDA(Array;LAMBDA(Function;WAHL(Function;SUMME(Array);MITTELWERT(Array);MIN(Array);MAX(Array)))(1)))

Die Funktion NACHZEILE nimmt in ihrer LAMBDA-Funktion an, dass das erstes Argument das Array bzw. der an NACHZEILE übergebene Bereich ist.
Nichts hindert uns jedoch daran, über eine LAMBDA-Funktion wiederum eine LAMBDA-Funktion zurückzugeben, die die passenden Argumente hat.
Insofern können wir das nun umdrehen:

Code:
=NACHZEILE($A$1:$B$3;LAMBDA(Function;LAMBDA(Array;WAHL(Function;SUMME(Array);MITTELWERT(Array);MIN(Array);MAX(Array))))(1))

Somit lässt sich nun im Namensmanager folgende LAMBDA-Funktion anlegen:

Code:
Funktion=LAMBDA(Function;LAMBDA(Array;WAHL(Function;SUMME(Array);MITTELWERT(Array);MIN(Array);MAX(Array))))

Und das war's auch schon. Jetzt lässt sich NACHZEILE wie folgt verwenden:

Code:
=NACHZEILE($A$1:$B$3;Funktion(1)) mit 1 = SUMME, 2 = MITTELWERT, usw.

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
[-] Folgende(r) 2 Nutzer sagen Danke an maninweb für diesen Beitrag:
  • LCohen, PIVPQ
Antworten Top
#2
Ähnlich TEILERGBNIS oder AGGREGAT Smile

Ansonsten: Interessante andere Verwendungen von LAMBDA, die ich noch nicht kannte.
Antworten Top
#3
Eine excelgegebene Verkürzung, wie schon angesprochen, hier zum Thema:

=NZ(9;A1:B3) ergibt 3;7;11

mit

NZ: =LAMBDA(b;a;NACHZEILE(a;LAMBDA(a;AGGREGAT(b;;a)))) einfache AGGREGAT-Variante bis Funktion 13 "MODUS.EINF"

(wenn es wirklich nur um Standardfunktionen geht. Bei individuellen Ausdrücken, v.a. mit Hinzuziehung anderer Bezüge oder Werte, ist WAHL unumgänglich)
__________________
Will man die weiteren Möglichkeiten

1. Fehlerbehandlung
2. auch ab Funktion 14 "KGRÖSSTE" bis 19 "QUARTILE.EXKL"
3. Mehrfachbereiche,

von AGGREGAT nutzen, kann man NZ natürlich entsprechend aufbohren.
__________________
Fazit: AGGREGAT bekommt hier einen recht wertvollen Zusatznutzen nachgereicht.
Antworten Top


Gehe zu:


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