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

Archive for 2020

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

Die LAMBDA-Funktion in Excel

Categories: Excel, Lambda
Comments: 15

Das Excel-Team hat gestern – 03.12.2020 – die LAMBDA-Funktion in Excel angekündigt und im Excel-Betakanal zur Verfügung gestellt. Um den Betakanal nutzen zu können, ist eine Teilnahme am Office-Insider-Programm erforderlich. Ein Hinweis dazu: oft ist es so, dass neue Features in Excel stückweise ausgerollt werden. Wenn der aktuellste Betakanal bereits genutzt wird, die LAMBDA-Funktion jedoch noch nicht vorhanden ist, dann ist ein bißchen Geduld gefragt. In einem der nächsten Updates sollte dann die Funktion auftauchen.

Mit der LAMBDA-Funktion lassen sich benutzerdefinierte Funktionen erstellen, die rein formelbasierte Berechnungen beinhalten. Es ist somit keine Programmierung in VBA oder JavaScript erforderlich. Laut dem Excel-Blog sind zudem noch weitere Features in Zusammenhang mit der LAMBDA-Funktion geplant und diese erste Veröffentlichung ist nur der Anfang.

Dieser Artikel stellt die LAMBDA-Funktion sowie die derzeit noch gültigen Randbedingungen zu deren Verwendung vor. Als Beispiel stelle ich dann meine benutzerdefinierte Funktion OSTERN vor, die das Osterdatum eines beliebigen Jahres berechnet und hierbei die LAMBA-Funktion verwendet.

Die LAMBDA-Funktion in Excel
Read more

Meine Auswertungen der Zugriffe auf diesen Blog führen in den Zugriffsstatistiken öfter mal Abrufe von deutlich älteren Blogposts auf. Einer dieser Blogposts beschreibt, wie aus einem vollständigen Pfad zu einer Datei der Dateiname per Formel ermittelt werden kann. Ab und zu schaue ich auch mal in die alten Artikel rein, so wie heute in den zuvor genannten Artikel, der nun schon über 10 Jahre alt ist. Und dabei hatte ich mich dann gefragt, ob es möglich wäre, das Problem auch mit einer Formel zu lösen, die auf dynamischen Arrays basiert.

Die Antwort ist, ja, das geht. Meine Lösung möchte ich nun niemanden vorenthalten und nachfolgend vorstellen. Als Nebeneffekt kommt dann noch zusätzlich eine Formel heraus, um eine Zeichenkette zu invertieren.

Dateinamen über dynamische Arrays ermitteln
Read more