Kurz gesagt —
MAP,REDUCE,SCAN,BYROWundBYCOLsind Funktionen höherer Ordnung: Sie nehmen einLAMBDAund lassen es über ein Array laufen —For Eachohne Makro. Die Falle Nummer 1: das LAMBDA von BYROW/BYCOL muss einen Wert pro Zeile/Spalte zurückgeben, sonst bekommen Sie#CALC!. Wählen Sie den Helfer nach der Form der gewünschten Antwort. Excel 365 und 2024+.
=MAP(A2:A100, LAMBDA(v, IF(v<0, 0, v))) ' jede Zelle transformieren
=BYROW(data, LAMBDA(row, SUM(row))) ' eine Summe pro Zeile
=REDUCE(0, A2:A100, LAMBDA(acc, v, acc + v)) ' auf einen einzigen Wert zusammenfassen
LET gab Ihnen Variablen.
LAMBDA gab Ihnen Funktionen. Die Helfer geben Ihnen das
letzte Stück einer Programmiersprache: Schleifen. Jeder nimmt ein LAMBDA und
lässt es über ein Array laufen, sodass Sie nie For Each schreiben — Sie
beschreiben, was mit jedem Element zu tun ist, und Excel iteriert.
Das lernen Sie
- Das mentale Modell: die Schleifen — ein LAMBDA an ein Array verfüttern
- Welcher Helfer was tut: MAP (transformieren), REDUCE (zusammenfassen), SCAN (laufende Summen), BYROW/BYCOL (ein Wert pro Zeile/Spalte)
- Die Regel Nummer 1: BYROW muss einen einzelnen Wert zurückgeben — die
#CALC!-Lösung für „eine Summe pro Zeile" - Das REDUCE-Akkumulator-Muster — und wann ein schlichtes SUMIFS immer noch gewinnt
Das mentale Modell: das sind die Schleifen
Es gibt fünf Helfer, und sie teilen sich sauber danach auf, welche Form herauskommt:
- MAP — jedes Element transformieren → ein Array derselben Form (10 Zellen rein, 10 Zellen raus).
- REDUCE — ein ganzes Array auf einen Wert zusammenfassen (ein laufender Akkumulator: Summe, Verkettung, Maximum).
- SCAN — wie REDUCE, aber behält jeden Zwischenschritt → eine laufende Summe, die die Spalte hinunter spillt.
- BYROW / BYCOL — das LAMBDA auf jede ganze Zeile (oder Spalte) anwenden → ein Wert pro Zeile (oder Spalte).
Sobald Sie sie nach Ausgabeform sortieren — gleiche Form, ein Wert, jeder Schritt, einer pro Zeile — hört die Wahl des richtigen Helfers auf, Raterei zu sein.
Kopier-und-einfüg-Muster
MAP — eine Transformation auf jedes Element anwenden:
=MAP(A2:A100, LAMBDA(v, IF(v<0, 0, v)))
REDUCE — ein Array auf einen einzigen Wert eindampfen (der Akkumulator acc
trägt das Ergebnis weiter):
=REDUCE(0, A2:A100, LAMBDA(acc, v, acc + v))
SCAN — dieselbe Idee, aber jeden Schritt ausspillen (eine laufende Summe):
=SCAN(0, A2:A100, LAMBDA(acc, v, acc + v))
BYROW — ein Wert pro Zeile (hier das Maximum jeder Zeile):
=BYROW(A2:D100, LAMBDA(row, MAX(row)))
Die Regel, an der BYROW scheitert: einen Wert pro Zeile zurückgeben
Das ist der Helfer, den die Leute falsch machen, und das Symptom ist #CALC!.
Das LAMBDA, das Sie BYROW (oder BYCOL) geben, muss für jede Zeile einen einzelnen
Wert zurückgeben — eine Zahl, eine Textzeichenkette, eine Zelle. Gibt es ein
Array zurück, kann BYROW es nicht unterbringen und wirft #CALC!.
=BYROW(data, LAMBDA(row, SUM(row))) ' eine Zahl pro Zeile -> funktioniert
=BYROW(data, LAMBDA(row, row*2)) ' #CALC! — row*2 ist ein Array, kein einzelner Wert
Dieser zweite Fall ist in Wahrheit eine MAP-Aufgabe (jedes Element
transformieren), keine BYROW-Aufgabe. Der Fehler geht auch in die andere Richtung:
Leute greifen zu MAP, um „eine Summe pro Zeile" zu bekommen, und kriegen es
nicht zum Laufen — weil MAP elementweise arbeitet und nie eine Zeile aggregiert.
Wollen Sie einen Wert pro Zeile, ist das BYROW. Wollen Sie jede Zelle
transformieren, ist das MAP. Die Ausgabeform entscheidet.
Der REDUCE-Akkumulator: das eine Muster, das Sie verinnerlichen müssen
REDUCE ist das mächtigste und das am wenigsten intuitive — wegen acc, dem
Akkumulator, der das laufende Ergebnis von einem Element zum nächsten trägt.
Lesen Sie LAMBDA(acc, v, …) als „hier ist das bisherige Ergebnis (acc) und der
nächste Wert (v); gib das neue bisherige Ergebnis zurück."
- Summe:
LAMBDA(acc, v, acc + v)beginnend bei0 - Verketten:
LAMBDA(acc, v, acc & ", " & v)beginnend bei"" - Bedingtes Zählen:
LAMBDA(acc, v, acc + (v>100))beginnend bei0
Sobald acc Klick macht, erledigt REDUCE die „geh die Liste durch und bau etwas
auf"-Aufgaben, die Sie früher in VBA gezwungen haben — laufende Salden mit
Regeln, eigene Aggregationen, Parsing-Schleifen.
Die Ermessensfrage: wann ein schlichtes Aggregat immer noch gewinnt
Diese Helfer iterieren in der Berechnungs-Engine und können auf sehr großen
Arrays langsam sein. Für eine schlichte Summe sind
SUM/SUMPRODUCT/SUMIFS schneller und einfacher — greifen Sie zu den Helfern, wenn
die Logik pro Element wirklich eigen ist, nicht wenn ein eingebautes Aggregat die
Aufgabe schon erledigt.
| Sie wollen… | Helfer | Ausgabeform |
|---|---|---|
| Jedes Element transformieren | MAP | Gleiche Form wie die Eingabe |
| Einen Wert pro Zeile | BYROW | Eine Spalte mit Ergebnissen |
| Einen Wert pro Spalte | BYCOL | Eine Zeile mit Ergebnissen |
| Auf einen einzigen Wert zusammenfassen | REDUCE | Eine Zelle |
| Eine laufende Summe die Zeilen hinunter | SCAN | Gleiche Form, kumulativ |
Wenn Sie eine Formel für laufende Summen über 10.000 Zeilen ziehen, ist das ein
SCAN; wenn Sie eine Hilfsspalte hinzufügen, nur um einen Wert pro Zeile zu
berechnen, ist das ein BYROW. Aber wenn ein SUMIFS die Frage schon
beantwortet, nehmen Sie es — die Helfer sind für eigene Logik da, nicht dafür,
Aggregate neu zu erfinden.
Wie ExcelMaster hilft
Funktionen höherer Ordnung sind der steilste Teil des modernen Excel — acc,
Ausgabeformen, MAP-vs-BYROW — und genau da, wo ein KI-Copilot am meisten Zeit
spart. ExcelMaster verwandelt „gib mir das Maximum
jeder Zeile" oder „einen laufenden Saldo, der sich jeden Monat zurücksetzt" in
die richtige MAP/REDUCE/BYROW-Formel, wählt den passenden Helfer für die
gewünschte Ausgabeform und erklärt den Akkumulator Schritt für Schritt. Wenn ein
Helfer #CALC! wirft, sagt es Ihnen, ob Sie BYROW statt MAP gebraucht hätten — und
schreibt es um. Probieren Sie es mit Ihren eigenen Daten.
Häufig gestellte Fragen
Was sind die LAMBDA-Helfer-Funktionen in Excel?
MAP, REDUCE, SCAN, BYROW und BYCOL sind Funktionen höherer Ordnung: Jede
nimmt ein LAMBDA und lässt es über ein Array laufen. Damit können Sie in einer
Formel über Daten iterieren — transformieren, aggregieren oder akkumulieren — ohne
ein VBA-Makro zu schreiben.
Warum gibt BYROW #CALC! zurück?
Das LAMBDA, das Sie übergeben haben, gibt ein Array statt eines einzelnen Werts
zurück. BYROW braucht einen Wert pro Zeile — aggregieren Sie die Zeile mit SUM(row),
MAX(row) usw. Wenn Sie eigentlich jedes Element transformieren wollen, nehmen Sie
MAP, nicht BYROW.
Was ist der Unterschied zwischen MAP und BYROW?
MAP arbeitet Element für Element und gibt ein Array derselben Form wie die
Eingabe zurück. BYROW arbeitet auf ganzen Zeilen und gibt einen Wert pro Zeile
zurück. Nehmen Sie MAP, um jede Zelle zu transformieren; nehmen Sie BYROW, um eine Summe, ein
Maximum oder eine Anzahl pro Zeile zu bekommen.
Wie funktioniert REDUCE in Excel?
REDUCE(start, array, LAMBDA(acc, v, …)) läuft durch das Array und trägt dabei
einen Akkumulator acc mit. Für jeden Wert v berechnet es ein neues acc.
=REDUCE(0, A2:A100, LAMBDA(acc, v, acc+v)) summiert den Bereich; beginnen Sie bei
"" mit acc & v, verkettet es ihn.
Welche Excel-Versionen haben MAP, REDUCE und BYROW?
Die LAMBDA-Helfer sind in Excel 2024 und Microsoft 365 für Windows und Mac verfügbar. In Excel 2021, 2019 oder 2016 gibt es sie nicht.
Getestet in
Getestet in: Excel 365 (Windows 11) – zuletzt geprüft am 22.06.2026.
Verwandte Anleitungen: Excel LAMBDA · Excel LET · Excel SORT · Excel SEQUENCE
