(C) 2009 - 2021 by Mourad Louha · Alle Rechte vorbehalten

TEXT.TRIM.LEFT und TEXT.TRIM.RIGHT

Categories: Excel, Lambda
Comments: No

Benutzerdefinierte Funktionen, die mithilfe der kürzlich in Excel eingeführten LAMBDA-Funktion angelegt wurden, lassen sich auch rekursiv verwenden, sofern eine Abbruchbedingung innerhalb der Funktion implementiert wurde. Derzeit sind solche Funktionen meiner Ansicht nach jedoch recht schwer zu debuggen – ich hoffe, dass das Excel-Team in Zukunft vielleicht Werkzeuge dazu zur Verfügung stellt.

Ich habe somit erstmal mit einfachen Funktionen experimentiert. Eingefallen sind mir die beiden Funktionen TEXT.TRIM.LEFT und TEXT.TRIM.RIGHT, die respektive von links oder rechts aus gesehen ein anzugebendes Zeichen aus einem Text entfernen sollen. Und zwar solange bis das aktuelle Zeichen nicht mehr dem zu entfernenden Zeichen entspricht.

TEXT.TRIM.LEFT und TEXT.TRIM.RIGHT
Read more

TEXT.SPLIT

Categories: Excel, Lambda
Comments: No

Nachdem ich mir nun einige benutzerdefinierte Array-Funktionen mithilfe der LAMBDA-Funktion in Excel erstellt habe, wird es Zeit, dass diese langsam auch zum Einsatz kommen. Die nachfolgend vorgestellte benutzerdefinierte Funktion TEXT.SPLIT verwendet ARRAY.FROMTEXT als Hilfsfunktion, um aus einem Text ein Array zu generieren.

Im Netz kursieren bereits einige LAMBDA-Funktionen, die einen Text anhand eines Trennzeichens aufteilen. Diese Lösungen berücksichtigen meines Wissens bislang jedoch nur ein Trennzeichen. TEXT.SPLIT ist in hingegegen der Lage, mehrere Trennzeichen zu berücksichtigen.

Die Funktion LAMBDA, auf der nachfolgende Formeln beruhen, wurde erst kürzlich in Excel eingeführt und ist derzeit nur in der Insider-Version von Excel verfügbar. Eine Einführung zu der LAMBDA-Funktion ist hier zu finden. Nebenbei, jeder kann Office-Insider werden, hier gibt es weitere Informationen zum Office-Insider-Programm.

TEXT.SPLIT
Read more

Microsoft released early December 2020 the first version of the LAMBDA function in Excel. This new function allows you to define your own re-usable custom functions by only using the Excel’s formula language. In the past, custom functions could only be implemented by using a programming language such as VBA or JavaScript. At the time, I wrote this article (12/22/2020), the LAMBDA function is only available for Office Insiders. Anyone can join the Office Insider Program, please see here for more information on that.

The new function LAMBDA will be in my opinion a game changer and I think that the Excel team is not exaggerating, if they are talking about that LAMBDA will revolutionize how you build formulas in Excel.

Custom Array Functions

I started blogging about the LAMBDA function since its release and created eleven custom array related functions until now. I am mainly writing my posts in German, but the last days I noticed a considerable increase of English-speaking readers. Online translators are nowadays doing a pretty good job when it comes to translate text, but they mostly fail when it comes to translate Excel formulas. That makes it more difficult for English-speaking people to understand the German formulas. Therefore, I am writing this article in English with a summary and short explanation of all my custom functions created so far.

As you probably know, nothing is static in Excel formulas. Often, there may be a way to improve it. So, if you find a better solution for one or more formulas, please let me know and leave a comment here.

Read more

ARRAY.PUSH und ARRAY.PULL

Categories: Excel, Lambda
Comments: No

Derzeit teste ich einige LAMBDA-Funktionen, die es ermöglichen sollen, in Excel rein formelbasierte Beechnungen mit sehr großen Zahlen durchzuführen zu können, wie beispielsweise eine Addition oder Multiplikation solcher Zahlen. Bislang sind solche Berechnungen nur über Add-Ins oder VBA möglich.

Um dem vorgenannten Ziel näher zu kommen, habe ich bereits einige Array-Hilfsfunktionen, wie z.B. ARRAY.FROMTEXT.EX oder ARRAY.REVERSE entwickelt und auch hier im Blog vorgestellt. ARRAY.PUSH und ARRAY.PULL sind zwei weitere Hilfsfunktionen, die dazu dienen die Elemente eines Bereichs verschieben zu können.

ARRAY.PUSH und ARRAY.PULL
Read more

ARRAY.SPLIT.BYPOS

Categories: Excel, Lambda
Comments: No

Nachdem ich ARRAY.SPLIT entwickelt hatte, kam mir die Idee, ob sich nicht eine Version entwickeln liesse, die einen einspaltigen Bereich nicht anhand eines Trennzeichens, sondern anhand vordefinierter Positionen aufteilt. Beispielsweise müsste eine solche Funktion in der Lage sein, den Text KA01A23Z25 in K, A01, A23 und Z25 aufzuteilen, also an den Positionen 2, 5 und 8.

Dieser Artikel stellt die LAMBDA-Funktion ARRAY.SPLIT.BYPOS und meinen Lösungsansatz vor. Wie so oft bei Excel-Formeln, ist aber sicherlich immer etwas Verbesserungspotential vorhanden. Falls jemand einen Vorschlag z.B. zur Optimierung der Lösung hat, freue ich mich über jeden Kommentar zu diesem Artikel.

Um die benutzerdefinierte Funktion anzulegen, werden dynamische Arrays und die kürzlich von Microsoft veröffentlichte Funktion LAMBDA verwendet. Zum jetztigen Zeitpunkt (20.12.2020) ist LAMBDA nur in der Excel-Beta-Version verfügbar, was sich hoffentlich bald ändern wird. Eine Einführung zu der LAMBDA-Funktion ist hier zu finden.

ARRAY.SPLIT.BYPOS
Read more

ARRAY.SPLIT

Categories: Excel, Lambda
Comments: No

Ab und zu kommt es in der Praxis vor, dass Werte aus einem einspaltigen Bereich anhand eines Trennzeichens auf einzelne Spalten aufgeteilt werden müssen, beispielsweise um Kodierungen von Artikel- oder Materialnummern zu trennen.

Excel bietet für solche Aufgaben verschiedene Lösungsmöglichkeiten. So kann z.B. der Assistent Text in Spalten verwendet werden, der im Menüband unter dem Reiter Daten zu finden ist. Oder es kann Power Query verwendet werden, wo über eine Abfrage der Text ebenfalls recht einfach teilbar ist. Und natürlich ginge das auch über VBA.

Dieser Artikel stellt eine Methode vor, wie dies anhand der LAMBDA-Funktion und dynamischen Arrays machbar ist. Eine Einführung zu der LAMBDA-Funktion ist hier zu finden.

ARRAY.SPLIT
Read more

ARRAY.FROMTEXT und ARRAY.FROMTEXT.EX

Categories: Excel, Lambda
Comments: No

Ende Oktober 2020 hatte ich in dem Artikel Dateinamen über dynamische Arrays ermitteln eine Methode vorgestellt, wie der Dateiname aus einer vollständigen Pfadangabe zu einer Datei anhand dynamischer Arrays extrahiert werden kann. Die Idee bestand darin, aus der vollständigen Pfadangabe ein Array zu erstellen, welches den Text in umgekehrter Reihenfolge enthält, dieses dann ab dem ersten Backslash abzuschneiden und wieder zusammenzusetzen. Die LET-Funktion zum Erstellen des Array sieht in dem besagten Artikel wie folgt aus:

=LET(Value;A1;LINKS(RECHTS(Value;SEQUENZ(LÄNGE(Value)));1))

In einem weiteren Artikel hatte ich mit dem Erscheinen der LAMBDA-Funktion in Excel Anfang Dezember 2020 meine benutzerdefinierte Funktion ARRAY.REVERSE vorgestellt, die generell ein Array invertiert. Zukünftig möchte ich mir jedoch eine Bibliothek an allgemein verwendbaren Funktionen aufbauen, weshalb dann eine Funktion ARRAY.FROMTEXT sinnvoll wäre, die einen Text in ein Array umwandelt, ohne es zu invertieren. Somit lassen sich dann beide Funktionen kombinieren:

=ARRAY.REVERSE(ARRAY.FROMTEXT(A1))

Dieser Artikel stellt die Funktion ARRAY.FROMTEXT vor. Zudem habe ich noch die erweiterte Version ARRAY.FROMTEXT.EX implementiert, die mir einen Text in definierbare Blöcke aufteilt und hierbei einige Steuerungsparameter berücksichtigt.

ARRAY.FROMTEXT
Read more

ARRAY.APPEND

Categories: Excel, Lambda
Comments: No

Eine weitere Array-Funktion, die ich hier vorstellen möchte, ist ARRAY.APPEND, die zwei Bereiche zu einem Bereich zusammenfassen soll und das Ergebnis als dynamisches Array zurückliefert. Die Idee basiert auf meinen Artikel Zwei Bereiche per Formel zusammenführen, erweitert jedoch die im Artikel gezeigte Funktionalität um die Berücksichtigung zwei unterschiedlich breiter Bereiche.

Wie in meinen vorangegangen Artikeln zu neuen Array-Funktionen, basisert auch diese Array-Funktion auf der in Excel 365 kürzlich eingeführten LAMBDA-Funktion. Eine Einführung zu der LAMBDA-Funktion ist hier zu finden.

ARRAY.APPEND
Read more