Menu

Excel LAMBDA-Funktion: eigene Funktionen, MAP, NACHZEILE

=LAMBDA(price;price*1,2)(B2) legt eine kleine Funktion mit einer Eingabe, price, fest und ruft sie für B2 auf. Speicher ein LAMBDA im Namens-Manager, um es wie eine eingebaute Funktion zu verwenden, oder gib es an MAP, NACHZEILE, SCAN und REDUCE weiter.

Jede Tabelle auf dieser Seite ist live: Ändere eine Zahl oder eine Formel, und sie rechnet neu.

=LAMBDA(price;price*1,2)(B2) legt eine kleine Funktion mit einer Eingabe, price, fest und ruft sie sofort für B2 auf: Aus den 2.5 des Stifts werden 3. Für sich allein ist das nur eine längere Form von =B2*1,2. Der Sinn von LAMBDA ist, der Funktion im Namens-Manager einen Namen zu geben, damit aus einer langen Formel =ADDVAT(B2) wird, und sie an MAP, NACHZEILE und die anderen Funktionen weiter unten zu übergeben. LAMBDA heißt in deutschem Excel genauso; die Tabelle zeigt die Formel in englischer Schreibweise, =LAMBDA(price,price*1.2)(B2). Du kannst die Formeln in der Tabelle auch deutsch eingeben, mit Semikolons.

Eine Funktion, für jeden Preis aufgerufen
C2
ABC
1ItemPriceWith VAT
2Pen2.53
3Bag120144
4Lamp3542
5Mug89.6
6Desk150180
Klicke auf eine Zelle, um ihre Formel zu sehen. Ändere eine Zahl oder eine Formel, und die Tabelle rechnet neu.Im deutschen Excel: =LAMBDA(price;price*1,2)(B2)

Syntax von LAMBDA

=LAMBDA([parameter1, parameter2, ...], calculation)
  • Jeder parameter ist ein Name für eine Eingabe, wie die Namen in LET. Bis zu 253 sind erlaubt.
  • Das letzte Argument ist die calculation, die die Parameter verwendet.
  • Die Werte für die Parameter stehen in Klammern direkt nach der schließenden Klammer: =LAMBDA(x;y;x*y)(3;4) liefert 12.

LAMBDA, MAP, NACHZEILE, NACHSPALTE, SCAN, REDUCE und MATRIXERSTELLEN brauchen Microsoft 365, Excel 2024 oder Excel für das Web. Excel 2021 hat LET, aber diese Funktionen nicht. Google Sheets hat LAMBDA ebenfalls und speichert es unter einem Namen mit Daten > Benannte Funktionen.

Ein LAMBDA als eigene Funktion speichern

Wiederverwendbar wird ein LAMBDA, wenn du ihm einen Namen gibst. Excel braucht dafür weder VBA noch ein Add-in:

  1. Wähle Formeln > Namens-Manager und klick auf Neu (oder Formeln > Namen definieren).
  2. Tippe bei Name den Namen der Funktion, zum Beispiel ADDVAT.
  3. Gib bei Bezieht sich auf das LAMBDA ohne Eingaben ein: =LAMBDA(price;price*1,2).
  4. Klick auf OK. Jetzt tippst du =ADDVAT(B2) in eine beliebige Zelle der Arbeitsmappe.
Name:        ADDVAT
Refers to:   =LAMBDA(price,price*1.2)
In a cell:   =ADDVAT(B2)        returns 3 when B2 is 2.5

Die Funktion gibt es nur in dieser Arbeitsmappe. Kopierst du ein Blatt, das sie verwendet, in eine andere Arbeitsmappe, kommt der Name mit. Änderst du das LAMBDA einmal im Namens-Manager, aktualisiert sich jede Zelle, die es aufruft. Teste ein LAMBDA in einer Zelle mit Eingaben in Klammern, bevor du es speicherst; dort ist ein Fehler leichter zu sehen.

MAP: ein LAMBDA auf jede Zelle anwenden

MAP ruft das LAMBDA einmal für jede Zelle eines Bereichs auf und liefert einen Bereich derselben Form. Hier bekommt jeder Preis über 100 einen Rabatt von 10 %:

10 % Rabatt auf Preise über 100
C2
ABC
1ItemPricePrice to pay
2Pen2.52.5
3Bag120108
4Lamp3535
5Mug88
6Desk150135
Klicke auf eine Zelle, um ihre Formel zu sehen. Ändere eine Zahl oder eine Formel, und die Tabelle rechnet neu.

Aus der Tasche (120) werden 108 und aus dem Schreibtisch (150) werden 135; die anderen Preise bleiben, wie sie sind. Eine Formel in C2 deckt die ganze Spalte ab. MAP kann auch zwei gleich große Bereiche nebeneinander durchgehen: Mit Mengen in D2:D6 multipliziert =MAP(B2:B6,D2:D6,LAMBDA(p,q,p*q)) (englische Schreibweise) jeden Preis mit seiner Menge.

NACHZEILE: ein Ergebnis pro Zeile

NACHZEILE (englisch BYROW) gibt dem LAMBDA jeweils eine ganze Zeile, also kann das LAMBDA darauf MAX, SUMME oder MITTELWERT anwenden. Die beste und die durchschnittliche Punktzahl jedes Schülers:

Beste und durchschnittliche Punktzahl pro Schüler
E2
ABCDEF
1StudentTest 1Test 2Test 3BestAverage
2Ann7285909082.3
3Ben6470587064
4Cara8892959591.7
5Dan7560818172
Klicke auf eine Zelle, um ihre Formel zu sehen. Ändere eine Zahl oder eine Formel, und die Tabelle rechnet neu.Im deutschen Excel: =NACHZEILE(B2:D5;LAMBDA(r;MAX(r)))

E2 liefert 90, 70, 95 und 81; F2 liefert 82.3, 64, 91.7 und 72. Ein einfaches =MAX(B2:D5) würde eine Zahl für die ganze Tabelle liefern; NACHZEILE hält die Zeilen in einer einzigen Formel auseinander. In deutschem Excel lautet die Formel in E2 =NACHZEILE(B2:D5;LAMBDA(r;MAX(r))). NACHSPALTE (englisch BYCOL) macht dasselbe pro Spalte: =NACHSPALTE(B2:D5;LAMBDA(c;MITTELWERT(c))) liefert den Mittelwert jedes Tests.

SCAN und REDUCE: laufende Summen

REDUCE geht einen Bereich durch, trägt einen Wert mit und liefert nur das Endergebnis. SCAN macht dasselbe, liefert aber jeden Schritt, also wird es zu einer laufenden Summe in einer Formel:

Eine laufende Summe und eine Summe
C2
ABCD
1ItemPriceRunning totalTotal
2Pen2.52.5315.5
3Bag120122.5
4Lamp35157.5
5Mug8165.5
6Desk150315.5
Klicke auf eine Zelle, um ihre Formel zu sehen. Ändere eine Zahl oder eine Formel, und die Tabelle rechnet neu.Im deutschen Excel: =SCAN(0;B2:B6;LAMBDA(total;x;total+x))

Das erste Argument, 0, ist der Startwert. Für jeden Preis bekommt das LAMBDA die bisherige Summe und den Preis und liefert die neue Summe. C2 läuft über 2.5, 122.5, 157.5, 165.5, 315.5, und D2 zeigt nur die abschließenden 315.5. In deutschem Excel lautet die Formel in C2 =SCAN(0;B2:B6;LAMBDA(total;x;total+x)). Für eine einfache Summe ist SUMME einfacher, aber REDUCE kann alles mittragen, etwa einen Text, der wächst, oder eine Zahl, die nur in manchen Zeilen steigt.

Ein LAMBDA innerhalb einer Formel mit LET benennen

Ein LAMBDA braucht keinen Namens-Manager, wenn nur eine Formel es verwendet. Benenne es mit LET und gib den Namen an MAP oder NACHZEILE weiter:

Ein benanntes LAMBDA, an MAP übergeben
C2
ABC
1ItemPriceSale price
2Pen2.52.25
3Bag120108
4Lamp3531.5
5Mug87.2
6Desk150135
Klicke auf eine Zelle, um ihre Formel zu sehen. Ändere eine Zahl oder eine Formel, und die Tabelle rechnet neu.

Jeder Preis bekommt 10 % Rabatt: 2.25, 108, 31.5, 7.2 und 135. In Excel kannst du das benannte LAMBDA auch direkt in LET aufrufen, =LET(f;LAMBDA(x;x*2);f(5)), das 10 liefert.

Übung: eine Summe pro Zeile mit NACHZEILE

Du bist dran
E2
ABCDE
1StudentTest 1Test 2Test 3Total
2Ann728590
3Ben647058
4Cara889295
5Dan756081
Klicke auf eine Zelle, um ihre Formel zu sehen. Ändere eine Zahl oder eine Formel, und die Tabelle rechnet neu.

Du bist dran: Gib in E2 mit einer einzigen Formel die Summe der drei Tests jedes Schülers zurück, eine Zahl pro Zeile.

Häufige Fehler mit LAMBDA

=LAMBDA(x,x*2)          #CALC!   defined but never called
=LAMBDA(x,x*2)(5)       10
=LAMBDA(x,y,x*y)(3)     #VALUE!  two parameters, one value
=LAMBDA(x,x*2)(3,4)     #VALUE!  one parameter, two values

Der Block oben und die Tabellen zeigen die englischen Fehlernamen.

  • #KALK! (englisch #CALC!) bedeutet, dass ein LAMBDA in einer Zelle steht, ohne aufgerufen zu werden. Setz die Eingaben in Klammern dahinter, oder speicher es im Namens-Manager und ruf es über den Namen auf.
  • #WERT! (englisch #VALUE!) bedeutet, dass die Zahl der Werte nicht zur Zahl der Parameter passt. Zähl auf beiden Seiten nach.
  • #NAME? bedeutet, dass die Excel-Version kein LAMBDA hat oder ein gespeicherter Name falsch geschrieben ist. Für Parameternamen gelten die Regeln von LET: keine Leerzeichen, kein Name, der wie eine Zelladresse aussieht.
  • Ein LAMBDA in NACHZEILE, das pro Zeile mehrere Werte liefert, ergibt #KALK!. Jede Zeile muss einen Wert liefern; um eine Zeile mit Ergebnissen zurückzugeben, nimmst du stattdessen MATRIXERSTELLEN oder eine einfache Matrixformel.

Häufig gestellte Fragen

Was ist die Funktion LAMBDA in Excel?

Sie macht aus einer Formel eine Funktion mit benannten Eingaben. =LAMBDA(price;price*1,2) nimmt eine Eingabe namens price und liefert price mal 1,2. Du rufst sie auf, indem du die Eingabe in Klammern dahinter setzt, =LAMBDA(price;price*1,2)(B2), oder speicherst sie im Namens-Manager unter einem Namen.

Wie erstelle ich in Excel eine eigene Funktion ohne VBA?

Öffne Formeln > Namens-Manager > Neu, tippe einen Namen wie ADDVAT und gib bei Bezieht sich auf =LAMBDA(price;price*1,2) ein. Klick auf OK, und =ADDVAT(B2) funktioniert in jeder Zelle dieser Arbeitsmappe.

Warum liefert mein LAMBDA #KALK!?

Ein LAMBDA, das ohne Eingaben in eine Zelle getippt wird, etwa =LAMBDA(x;x*2), ist eine Funktion, die nie aufgerufen wurde, also zeigt Excel #KALK!. Setz die Eingabe in Klammern dahinter, =LAMBDA(x;x*2)(5), oder speicher es im Namens-Manager.

Welche Excel-Versionen haben LAMBDA?

Microsoft 365, Excel 2024 und Excel für das Web, zusammen mit MAP, NACHZEILE, NACHSPALTE, SCAN, REDUCE und MATRIXERSTELLEN. Excel 2021 hat LET, aber kein LAMBDA.

Was macht NACHZEILE in Excel?

Es führt ein LAMBDA einmal pro Zeile eines Bereichs aus und liefert ein Ergebnis pro Zeile: =NACHZEILE(B2:D5;LAMBDA(r;MAX(r))) liefert den größten Wert jeder Zeile, nach unten übergelaufen.

Illustration der Programmiersprachen bei Coddy

Lerne mit Coddy zu programmieren

LOS GEHT'S