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

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

Dieser zweite Artikel zu meinen benutzerdefinierten Array-Funktionen stellt die zwei Funktionen ARRAY.REMOVE.FIRSTN und ARRAY.REMOVE.LASTN vor, die respektive von oben und von unten Einträge aus einem Array entfernen. Die Idee habe ich mir übrigens von den M-Funktionen in PowerQuery abgeguckt, wo die zwei Funktionen List.RemoveFirstN und List.RemoveLastN zur Verfügung stehen. Wäre auch mal interessant weitere Funktionen der Art in Excel zu implementieren.

Meine beiden benutzerdefinierten Funktionen basieren auf der Excel LAMBDA-Funktion. Eine Einführung zu der LAMBDA-Funktion ist hier zu finden.

ARRAY.REMOVE.FIRSTN und ARRAY.REMOVE.LASTN
Read more

ARRAY.REVERSE

Categories: Excel, Lambda
Comments: 2

Nach meinem gestrigen Artikel mit einer Einführung zur LAMBDA-Funktion hat es mich gepackt, ein paar eigene benutzerdefinierte Funktionen in Excel zu entwickeln, die auf der LAMBDA-Funktion in Excel basieren.

Dieser Artikel läutet eine Reihe von Artikeln ein, wo ich meine im Laufe der Zeit entwickelten Funktionen vorstellen werde. Den Anfang werden hierbei Array-Funktionen machen, um Arrays zu manipulieren oder zu generieren.

Die erste Array-Funktion, die ich hier vorstellen möchte, ist ARRAY.REVERSE , die dazu dient, ein Array bzw. einen Bereich zu invertieren.

ARRAY.REVERSE
Read more