Zwei Gruppen zusätzlicher Textfunktionen erweitern den Umgang mit Zeichenketten: TEXTNACH()und TEXTVOR()erlauben die Teilung nach oder vor einem Trennzeichen, TEXTTEILEN()ermöglicht die Verteilung auf mehrere Zellen. Die zweite Gruppe arbeitet mit regulären Ausdrücken: REGEXEXTRAHIEREN(), REGEXERSETZEN() und REGEXTESTEN() erlauben Operationen mit Zeichenfolgen unter Zuhilfenahme von regulären Ausdrücken. Neu hinzugekommen ist noch das Funktionspaar SPRACHEERKENNEN() und ÜBERSETZEN() und die Funktionen PROZENTVON() und WERTZUTEXT().
Umfangreicher sind die Neuerungen in der Kategorie „Nachschlagen und Verweisen“: BILD(), ERWEITERN(), HSTAPELN(), PIVOTMIT(), SPALTENUMBRUCH(), SPALTENWAHL(), ÜBERNEHMEN(), VSTAPELN(), WEGLASSEN(), ZEILENUMBRUCH(), ZEILENWAHL(), ZUSPALTE(), ZUZEILE(). Dabei geht es meistens um den Umgang mit Daten, die in Form von Matrizen vorliegen.
Letzteres ist auch bei den neuen Funktionen der Fall, die in der Kategorie „Logik“ eingeordnet sind: MAP(), SCAN(), REDUCE(), MATRIXERSTELLEN(), NACHSPALTE(), NACHZEILE(). Außerdem wurden die bisher unter den Textfunktionen aufgelisteten Funktionen LET() und LAMBDA() jetzt bei den logischen Funktionen eingeordnet.
Eine Funktion, die im Zusammenhang mit der LAMBDA()-Funktion verwendet werden kann, um fehlende Parameter zu entdecken, ist noch unter dem Namen WURDEAUSGELASSEN() in der Kategorie „Informationen“ zu finden.
Syntax: BILD(Quelle; Alt_text; Größe; Höhe; Breite)
Die Funktion BILD()fügt ein Bild aus der per URL angegebenen Quelle in die Zelle ein. Erforderlich ist ein URL-Pfad der Bilddatei unter Verwendung eines HTTPS-Protokolls. Unterstützt werden die Dateiformate BMP, JPG/JPEG, GIF, TIFF, PNG, ICO und WEBP. Mit Alt_text kann ein Alternativtext angegeben werden, der das Bild beschreibt. Das optionale Argument Größe regelt die Abmessungen der Zelle:
0 Bild wird unter Beibehaltung des Seitenverhältnisses an Zelle angepasst.
1 Zelle wird mit dem Bild ausgefüllt, das Seitenverhältnis wird ignoriert.
2 Ursprüngliche Bildgröße wird beibehalten, die Grenzen der Zelle können überschritten werden.
3 Bildgröße wird mit den Werten für Höhe und Breite angepasst.
Es kann auch nur eine Höhe und/oder Breite des Bildes in Pixel angegeben werden. Wird nur eine Dimension angegeben, wird das Seitenverhältnis beibehalten. Möglicherweise wird der Zugriff auf bestimmte Bilder zunächst deaktiviert, da diese eine Verbindung mit einer externen Quelle erfordern. Wenn Sie der Verbindung vertrauen, können Sie den Zugriff auf die Bilder aktivieren.
Syntax: ERWEITERN(Matrix; Zeilen; Spalten; Pad)
Die Funktion ERWEITERN()erweitert eine vorhandene Matrix auf die angegebene Anzahl von Zeilen und Spalten. Das Ergebnis der Funktion ist eine dynamische Matrix. Der Fehler #WERT! erscheint, wenn der Wert für Zeilen oder Spalten kleiner ist als die Zahl der vorhandenen Zeilen oder Spalten. Wird für Zeilen oder Spalten nichts angegeben, bleibt die Matrix in dieser Hinsicht unverändert. Wird für Pad nichts angegeben, erscheint der Fehlerwert #NV.
Syntax: HSTAPELN(Array1; Array2; …)
Die Funktion HSTAPELN() stapelt Matrizen horizontal in einer Matrix. Maximal sind bis zu 254 Matrizen erlaubt. Reichen die Werte nicht aus, um alle Zeilen komplett zu füllen, wird jeweils der Fehlerwert #NV eingefügt. Das Ergebnis der Funktion ist eine dynamische Matrix.
Syntax: PIVOTMIT(Row_fields; Col_fields; Values; Function; Field_headers; Row_total_depth; Row_sort_order; Col_total_depth; Col_sort_order; Filter_array; Relative_to)
Die Funktion PIVOTMIT()erlaubt es, die Daten einer Tabelle nach den angegebenen Zeilen- und Spaltenfeldern zu gruppieren, zusammenzufassen, zu sortieren und zu filtern. Das Ergebnis der Funktion ist eine dynamische Matrix. Die notwendigen Argumente row_fields und col_fields geben die Zeilen- und Spaltenfelder an, die berücksichtigt werden, Werte sind die Daten, die entsprechend der mit Funktion angegebenen Methode aggregiert werden. Wenn row_fields oder col_fields mehrere Spalten enthalten, erscheinen in der Ausgabe mehrere Zeilen- und Spaltengruppenebenen. Wenn Werte mehrere Spalten enthält, liefert die Ausgabe mehrere Aggregationen.
Das Argument Funktion ist entweder eine der Aggregationsfunktionen wie SUMME(), ANZAHL(), MITTELWERT() etc. oder eine LAMBDA()-Funktion, die eine aggregierende Berechnung enthält – LAMBDA(x; SUMME(x)).
Die anderen Argumente sind optional. Das Argument field_headers ist eine Zahl, die angibt, ob Feldüberschriften vorhanden sind und ob sie angezeigt werden sollen.
Fehlt Automatisch (Vorgabe)
0 Nein
1 Ja und nicht anzeigen
2 Nein, aber generieren
3 Ja und anzeigen
Bei Automatisch wird bei Werten der erste als Überschrift verwendet, wenn es ein Text ist.
Mit row_total_depth wird bestimmt, ob die Zeilenüberschriften Summen enthalten sollen:
Fehlt Automatisch: Gesamtsummen und nach Möglichkeit Zwischensummen.
0 Keine Gesamtsummen
1 Gesamtsummen
2 Gesamt- und Zwischensummen
-1 Gesamtsummen oben
-2 Gesamt- und Zwischensummen oben
Das Argument row_sort_order regelt die Sortierung der Spalten. Die Zahl wählt die entsprechende Spalte in row_fields, gefolgt von den Spalten in Werten. Mit negativen Zahlen wird die Sortierreihenfolge umgekehrt.
Das Argument col_total_depth bestimmt, ob die Spaltenüberschriften Summen enthalten sollen:
Fehlt Automatisch: Gesamtsummen und nach Möglichkeit Zwischensummen.
0 Keine Gesamtsummen
1 Gesamtsummen
2 Gesamt- und Zwischensummen
-1 Gesamtsummen oben
-2 Gesamt- und Zwischensummen oben
Das Argument col_sort_order regelt die Sortierung der Zeilen. Die Zahl wählt die entsprechende Spalte in col_fields, gefolgt von den Spalten in Werten. Mit negativen Zahlen wird die Sortierreihenfolge umgekehrt.
Mit filter_array kann eine eindimensionale Matrix mit WAHR oder FALSCH angegeben werden, um zu entscheiden, ob die entsprechende Datenzeile berücksichtigt werden soll. Die Länge muss mit derjenigen in row_fields und col_fields übereinstimmen.
Das Argument relative_to kann verwendet werden, um ein zweites Argument für die Aggregationsfunktion anzugeben, das z.B. bei der PROZENTVON()-Funktion benötigt wird. Die möglichen Werte sind:
0 Spaltensummen (Vorgabe)
1 Zeilensummen
2 Gesamtsummen
3 Übergeordnete Spalte Gesamtsumme
4 Übergeordnete Zeile gesamt
Syntax: SPALTENUMBRUCH(Vektor; Wrap_count; Pad_with)
Die Funktion SPALTENUMBRUCH() verteilt die Werte eines Vektors auf Spalten. Wrap_count gibt die maximale Anzahl von Werten pro Spalte an. Mit Pad_with kann angegeben werden, was anstelle von #NV angezeigt werden soll, wenn in der Spalte Stellen freibleiben. Das Ergebnis der Funktion ist eine dynamische Matrix.
Syntax: SPALTENWAHL(Array; Row_num1; Row_num2; …)
Die Funktion SPALTENWAHL()liefert einzelne Spalten aus einer Matrix oder einem Bereich. Das Ergebnis der Funktion ist eine dynamische Matrix. Die Row_num(n)-Argumente geben (entgegen der Bezeichnung) die Nummern der Spalten an, die übernommen werden sollen. Eine ungültige Spaltennummer führt zu dem Fehler #WERT!.
Syntax: ÜBERNEHMEN(Matrix; Zeilen; Spalten)
Die Funktion ÜBERNEHMEN() liefert die angegebene Zahl von Zeilen oder Spalten vom Anfang oder bei negativen Werten vom Ende einer Matrix.
Syntax: VSTAPELN(Array1; Array2; …)
Die Funktion VSTAPELN() stapelt Matrizen vertikal in einer Matrix. Das Ergebnis der Funktion ist eine dynamische Matrix. Maximal sind bis zu 254 Matrizen erlaubt. Reichen die Werte nicht aus, um alle Spalten komplett zu füllen, wird jeweils der Fehlerwert #NV eingefügt.
Syntax: WEGLASSEN(Matrix; Zeilen; Spalten)
Die Funktion WEGLASSEN() löscht Zeilen oder Spalten vom Anfang oder bei negativen Werten vom Ende einer Matrix. Das Ergebnis der Funktion ist eine dynamische Matrix.
Syntax: ZEILENUMBRUCH(Vektor; Wrap_count; Pad_with)
Die Funktion ZEILENUMBRUCH() verteilt die Werte eines Vektors auf Zeilen. Das Ergebnis der Funktion ist eine dynamische Matrix. Wrap_count gibt die maximale Anzahl von Werten pro Zeile an. Mit Pad_with kann angegeben werden, was anstelle von #NV angezeigt werden soll, wenn in der Zeile Stellen freibleiben.
Syntax: ZEILENWAHL(Array; Row_num1; Row_num2; …)
Die Funktion ZEILENWAHL() liefert einzelne Zeilen aus einer Matrix oder einem Bereich. Das Ergebnis der Funktion ist eine dynamische Matrix. Die Row_num(n)-Argumente geben die Nummern der Zeilen an, die übernommen werden sollen. Eine ungültige Zeilennummer führt zu dem Fehler #WERT!.
Syntax: ZUSPALTE(Array; Ignorieren; Scannen_nach_spalte)
Die Funktion ZUSPALTE() liefert die Werte einer Matrix als Spalte. Das Ergebnis der Funktion ist eine dynamische Matrix. Das optionale Argument Ignorieren gibt an, ob bestimmte Typen von Werten ignoriert werden sollen:
0 Alle Werte beibehalten (Vorgabe)
1 Leerzeichen ignorieren
2 Fehler ignorieren
3 Leerzeichen und Fehler ignorieren
Das Argument Scannen_nach_spalte kann dafür sorgen, dass die Matrix spaltenweise gescannt wird, als Vorgabe wird zeilenweise gescannt. Das Scannen bestimmt, ob die Werte zeilenweise oder spaltenweise übernommen werden.
Syntax: ZUZEILE(Array; Ignorieren; Scannen_nach_spalte)
Die Funktion ZUZEILE() liefert die Werte einer Matrix als Zeile. Das Ergebnis der Funktion ist eine dynamische Matrix. Das optionale Argument Ignorieren gibt an, ob bestimmte Typen von Werten ignoriert werden sollen:
4 Alle Werte beibehalten (Vorgabe)
5 Leerzeichen ignorieren
6 Fehler ignorieren
7 Leerzeichen und Fehler ignorieren
Das Argument Scannen_nach_spalte kann dafür sorgen, dass die Matrix spaltenweise gescannt wird, als Vorgabe wird zeilenweise gescannt. Das Scannen bestimmt, ob die Werte zeilenweise oder spaltenweise übernommen werden.
Syntax: PROZENTVON(data_subset; data_all)
Die Funktion PROZENTVON() gibt den Prozentsatz einer Teilmenge von einer Gesamtmenge aus. Die Argumente werden als Bereiche angegeben. Sind beide Bereiche leer, löst das den Fehler DIV/0! aus.
Die Teilmenge muss nicht Teil der Gesamtmenge ist. Die Funktion kann zum Vergleich beliebiger Mengen verwendet werden.
Syntax: REGEXEXTRAHIEREN(Text; Muster; Return_mode; Groß-/Kleinschreibungsunterscheidung)
Die Funktion REGEXTRACT() extrahiert Zeichenfolgen aus dem angegebenen Text, die dem Muster entsprechen. Ist das Muster kein gültiger regulärer Ausdruck, liefert die Formel den Fehler #WERT!, wird keine Übereinstimmung mit dem Muster gefunden, erscheint der Fehlerwert #NV.
Syntax: REGEXERSETZEN(Text; Muster; Ersetzung; Vorkommen; Groß-/Kleinschreibungsunterscheidung)
Die Funktion REGEXERSETZEN() tauscht Zeichenfolgen aus Text, die dem angegebenen Muster entsprechen, gegen die mit Ersetzung angegebene Zeichenfolge aus. Gibt es keine Übereinstimmung mit dem Muster, wird die Zeichenfolge Text unverändert wiedergegeben. Ist das Muster kein gültiger regulärer Ausdruck, liefert die Formel den Fehler #WERT!.
Syntax: REGEXTEST(Text; Muster; Groß-/Kleinschreibungsunterscheidung)
Die Funktion REGEXTESTEN() prüft, ob die Zeichenfolge mit dem angegebenen Muster übereinstimmt. Das Ergebnis ist der logische Wert WAHR oder FALSCH. Ist das Muster kein gültiger regulärer Ausdruck, liefert die Formel den Fehler #WERT!.
Syntax: SPRACHEERKENNEN(Text)
Die Funktion liefert mithilfe des in Windows integrierten Übersetzungsdienstes den zwei- oder freistelligen Ländercode der Sprache, zu der die mit Text angegebene Zeichenfolge gehört.
Syntax: TEXTNACH(Text; Delimiter; Instance_num; Match_mode; Match_end; If_not_found)
Die Funktion =TEXTNACH() gibt den Teil einer Zeichenfolge zurück, der dem angegebenen Trennzeichen folgt. Das erste Argument ist die Zeichenfolge oder ein Bezug darauf, das zweite Argument ist das Trennzeichen. Da das Trennzeichen mehrfach vorkommen kann, erlaubt das optionale dritte Argument anzugeben, um das wievielte Vorkommen es sich handelt. Als Vorgabe wird 1 angenommen. Mit einem Wert wie -1 beginnt die Suche vom Ende her. Das Argument Match_mode kann folgende Werte annehmen: 0 für Groß- und Kleinschreibung nicht beachten, 1 für die Beachtung derselben. Ist das Argument Text_end = 0, wird das Textende nicht mit dem Trennzeichen abgeglichen, wird kein Trennzeichen gefunden, wird #NV ausgegeben; bei 1 wird geprüft, ob das Textende mit dem Trennzeichen übereinstimmt.
Syntax: TEXTTEILEN(Text; col_delimiter; row_delimiter; ignore_empty; match_mode; pad_with)
Die Funktion =TEXTTEILEN() verteilt Teile einer Zeichenfolge in einer Zeile auf Spalten oder in einer Spalte auf Zeilen oder beides gleichzeitig. Das erste Argument ist der aufzuteilende Text. Das zweite oder das dritte Argument gibt das Zeichen an, ab dem der Überlauf in die nächste Spalte oder Zeile (optional) erfolgen soll. Sind mehrere Trennzeichen vorhanden sind, wird eine Array-Konstante verwendet werden. =TEXTTEILEN(A1;{",";"."}) erlaubt das Komma oder den Punkt.
Der Wahrheitswert WAHR für das vierte Argument ignoriert aufeinander folgende Trennzeichen, Vorgabe ist aber FALSCH, was eine leere Zelle liefert. Das fünfte Argument gibt an, ob die Groß- und Kleinschreibung berücksichtigt werden soll (0 = Vorgabe) oder nicht (1). Das letzte Argument gibt einen Wert an, mit dem das Ergebnis aufgefüllt werden kann, wenn ein Wert fehlt.
Um die Daten gleichzeitig auf mehrere Spalten und mehrere Zeilen auszubreiten, wird mit zwei Trennzeichen gearbeitet.
Syntax: TEXTVOR(Text; Delimiter; Instance_num; Match_mode; Match_end; If_not_found)
Die Funktion =TEXTVOR() gibt den Teil einer Zeichenfolge zurück, der vor dem angegebenen Trennzeichen liegt. Das erste Argument ist die Zeichenfolge oder ein Bezug darauf, das zweite Argument ist das Trennzeichen. Da das Trennzeichen mehrfach vorkommen kann, erlaubt das optionale dritte Argument anzugeben, um das wievielte Vorkommen es sich handelt. Als Vorgabe wird 1 angenommen. Mit einem Wert wie -1 beginnt die Suche vom Ende her.
Das Argument Match_mode kann folgende Werte annehmen: 0 für Groß- und Kleinschreibung nicht beachten, 1 für die Beachtung derselben. Ist das Argument Text_end = 0, wird das Textende nicht mit dem Trennzeichen abgeglichen; wird kein Trennzeichen gefunden, wird #NV ausgegeben; bei 1 wird geprüft, ob das Textende mit dem Trennzeichen übereinstimmt.
Syntax: ÜBERSETZEN(Text Source_language; Target_language)
Die Funktion liefert mithilfe des in Windows integrierten Übersetzungsdienstes eine Übersetzung des angegebenen Textes, wobei die Codes der Ausgangssprache und der Zielsprache angegeben werden können. Wird kein Code angegeben, wird vom Englischen ins Deutsche übersetzt.
Syntax: WERTZUTEXT(Wert; Format)
Die Funktion WERTZUTEXT() gibt den angegebenen Wert als Text aus. Das Argument Format kann mit 0 für eine präzise Übereinstimmung des Formats angegeben werden oder mit 1 für eine strenge Ausgabe als Text, das heißt hier: in Anführungszeichen gesetzt.
Syntax: LAMBDA(Parameter1;Parameter2;… Berechnung)
Die Funktion LAMBDA() führt mit den angegebenen Parametern die am Ende der Argumentliste angegebene Berechnung aus und liefert deren Ergebnis. Die Parameterargumente sind optional, die Berechnung ist erforderlich. Bis zu 253 Parameter sind erlaubt, Konstanten oder Zellbezüge. Die Namen der Parameter dürfen keinen Punkt enthalten. Hinter der schließenden Klammer für die Argumente der Funktion folgt eine Klammer mit den Parameterwerten.
Wenn die Zahl der Parameter zu groß ist oder wenn ein in der Berechnung notwendiger Parameter fehlt, liefert die Funktion den Fehlerwert #WERT!. Eine LAMBDA()-Funktion, die sich selbst aufruft, ist zirkulär und ergibt den Fehlerwert #ZAHL!. Wird die Funktion innerhalb der Zelle, in der sie eingetragen ist, nicht aufgerufen, werden die Parameter also nicht mit Werten versorgt, provoziert das den Fehler #KALK!, der darauf hinweist, dass eine Berechnung nicht durchführbar ist.
Syntax: LET(Name1; Name_Wert1; Berechnung_oder_Name2; Name_Wert2; Berechnung_oder_Name3…)
Die Funktion LET() weist innerhalb der Funktion angegebenen Berechnungen Namen zu, die dann in nachfolgenden Berechnungen als Zwischenergebnisse verwertet werden können. Die Funktion muss mindestens ein Name-Wert-Paar enthalten, maximal sind es 126 Paare. Das letzte Argument bestimmt das Resultat der Funktion.
Syntax: MAP(Array; Lambda_or_array2; …)
Durch die Funktion MAP()kann aus einer oder aus mehreren Matrizen an anderer Stelle eine neue Matrix erzeugt werden, wobei die neuen Werte in einem Mapping-Verfahren mit einer LAMBDA()-Funktion gefunden werden. Das Ergebnis der Funktion ist eine dynamische Matrix. Das erste Argument ist eine vorhandene Matrix, das letzte immer die LAMBDA()-Funktion. Dazwischen können noch weitere Matrizen angesprochen werden.
Für jede verwendete Matrix muss in der LAMBDA()-Funktion ein Parameter vorhanden sein, sonst liefert die Funktion den Fehler #WERT!. Das gilt auch, wenn die LAMBDA()-Funktion aus anderen Gründen ungültig ist.
Syntax: MATRIXERSTELLEN(Zeilen; Spalten; Funktion))
Die Funktion MATRIXERSTELLEN()liefert eine per LAMBDA()-Funktion berechnete Matrix mit der angegebenen Anzahl von Spalten und Zeilen. Das Ergebnis der Funktion ist eine dynamische Matrix. Das Argument Funktion ist eine LAMBDA()-Funktion. Sie akzeptiert als Parameter den Zeilen- und den Spaltenindex. Die Argumente Zeilen und Spalten dürfen nicht < 1 sein.
Die Funktion kann auch verwendet werden, um beispielsweise als Material für Tests Matrizen mit zufälligen Werten zu erzeugen.
Syntax: NACHSPALTE(Array; Funktion)
Durch die Funktion NACHSPALTE() lässt sich die mit Array angegebene Matrix spaltenweise auswerten, etwa um jeweils die maximalen Werte zu finden. Die Funktion liefert eine einzeilige dynamische Matrix, die der Anzahl der Spalten entspricht.
Syntax: NACHZEILE(Array; Funktion)
Durch die Funktion NACHZEILE() lässt sich die mit Array angegebene Matrix zeilenweise auswerten, etwa um jeweils die maximalen Werte zu finden. Die Funktion liefert eine einspaltige dynamische Matrix, die der Anzahl der Zeilen entspricht.
Syntax: REDUCE(Initial_value; Array; Funktion)
Die Funktion REDUCE()reduziert eine Matrix auf einen akkumulierten Wert, der durch Anwendung einer LAMBDA()-Funktion auf alle Werte gewonnen wird. Das Ergebnis der Funktion ist eine dynamische Matrix. Als erstes Argument wird ein Startwert für die Akkumulation angegeben. Die LAMBDA()-Funktion benötigt zwei Parameter: den Akkumulator, dessen Startwert angegeben ist, und der Wert, der bei der Akkumulation verwendet wird.
Syntax: SCAN(Initial_value; Array; Funktion)
Die Funktion SCAN()scannt die Werte einer Matrix und wendet dabei eine LAMBDA()-Funktion auf jeden Wert an und liefert die Ergebnisse als neue dynamische Matrix. Als erstes Argument wird ein Startwert für die Akkumulation angegeben. Die LAMBDA()-Funktion benötigt zwei Parameter: den Akkumulator, dessen Startwert angegeben ist, und der Wert, der bei der Akkumulation verwendet wird.