Google Sheets-Kochbuch: Lambda-Funktionen & Benannte Funktionen


Eine Lambda-Funktion ist eine anonyme Funktion. Sie arbeitet mit den Lambda-Hilfsfunktionen zusammen, und ist die Grundlage für benannte Funktionen. Lambda-Funktionen sind immer dann hilfreich wenn wir mit Arrays arbeiten, also die gleichen Operationen auf eine Vielzahl von Daten anwenden wollen.

Lambda-Funktionen Bearbeiten

Syntax:

  • LAMBDA([Name; …]; Formelausdruck)
    • Name steht hier für optionale Namen, die im Formelausdruck verwendet werden können.
    • Die LAMBDA-Funktion kann so übrigens gar nicht aufgerufen werden, entweder verwendet man sie in einer Helfer-Funktion, oder in einer benannten Funktion. Es fehlen hier die Werte.
  • LAMBDA([Name; …]; Formelausdruck)(Wert[; Wert …])
    • So wird die Lambda-Funktion mit Werten aufgerufen. Es ist die einzige Funktion in Google-Sheets, die mit zwei runden Klammern aufgerufen werden kann.
    • Beispiele für Lambda-Funktionen die mit Werten aufgerufen werden, folgen sofort.

Beispiel 1:

  • =LAMBDA(wert;wert*2)(A1)
    • Dieser Ausdruck entspricht der Eingabe von =A1*2
    • Der Variablen "wert" wird also der Inhalt der Zelle A1 zugewiesen, dann wird die Funktion "wert*2" ausgeführt.

Beispiel 2:

  • =LAMBDA(Wert1;Wert2;(Wert1-Wert2)/Wert2)(A1;B1)
    • Dieser Ausdruck entspricht der Eingabe von =(A1-B1)/B1
    • Der Variablen "Wert1" wird also der Inhalt der Zelle A1 zugewiesen, der Variablen "Wert2" der Inhalt der Zelle B1, dann wird die Funktion "(Wert1-Wert2)/Wert2" ausgeführt.

Der Aufruf als LAMBDA-Funktion macht hier offensichtlich noch nicht viel Sinn, aber das erschließt sich gleich, wenn wir die gleiche Funktion auf eine Vielzahl von Daten anwenden wollen.

Lambda-Helfer-Funktionen Bearbeiten

Die Lambda-Helfer-Funktionen wenden eine anonyme Funktion auf ein Array/mehrere Arrays an. Das kann z.B. ein Zellbereich wie A1:A10 sein.

Map-Funktion Bearbeiten

Die Map-Funktion wendet eine Lambda-Funktion auf ein oder mehrere Arrays an. Der Rückgabewert ist ein Array. Verwendet man mehrere Arrays, müssen die Arrays die gleiche Dimension (die gleiche Größe) haben, Listen also z.B. gleich lang sein.

Die Map-Funktion kann für viele Zwecke angewendet werden, wo sonst eine Arrayformula gebraucht wurde.

Syntax:

  • MAP(Array1; [Array2; …]; LAMBDA([Name; …]; Formelausdruck))

Beispiel 1:

  • =MAP(A1:A10;LAMBDA(wert;wert*2))
    • Hier stehen die Werte also nicht hinter der Lambda-Funktion in runden Klammern, sondern vor der Lambda-Funktion.
    • Das entspricht unserem Beispiel 1 von oben.
    • Die Lambda-Funktion wird hier nicht nur auf den Wert in Zelle A1 angewendet, sondern auf jeden Wert aus dem Zellbereich A1:A10.

Beispiel 2:

  • =MAP(A1:A10;B1:B10;LAMBDA(Wert1;Wert2;(Wert1-Wert2)/Wert2))
    • Wieder stehen die Werte vor der Lambda-Funktion.
    • Die Lambda-Funktion wird also auf den Zellbereich A1:A10 und B1:B10 angewendet.

Reduce-Funktion Bearbeiten

Durchläuft ein Array und man kann jeden einzelnen Arraywert auf einen Ausgangswert (Accumulator) anwenden. Der Rückgabewert ist skalar (also kein Array).

Byrow Bearbeiten

Durchläuft ein Array zeilenweise und kann die Lambda-Funktion auf jede Zeile einzeln anwenden.

Bycol Bearbeiten

Durchläuft ein Array spaltenweise und kann die Lambda-Funktion auf jede Spalte einzeln anwenden.

Makearray Bearbeiten

Erstellt ein Array, ähnlich wie die Sequence-Funktion. Makearray ist allerdings flexibler, da nun ein beliebiger Formelausdruck für die Werte im Array verwendet werden kann.

Scan Bearbeiten

Benannte Funktionen (Named Functions) Bearbeiten

Benannte Funktionen erlauben es, komplizierte Funktionen zu speichern und sie über das Menü wie eingebaute Funktionen abzurufen, ohne dafür in jedem Fall ein Script schreiben zu müssen. Das vereinfacht auch sehr ihre Weitergabe.



Die Beispiele auf dieser Seite wurden getestet: 05/2023