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

Archive for 2021

JSON.FROMRANGE

Categories: Excel, Lambda
Comments: No

Ich muss schon gestehen, die Excel-Funktion LAMBDA fasziniert mich weiterhin. Weil ich in einem meiner Projekte per VBA-Code aus einzelnen Zellbereichen JSON-Daten generieren musste, hatte ich mich gefragt, ob sich vielleicht das Konvertieren eines Zellbereichs in JSON-Daten auch nicht mit einer Formel realisieren liesse. Vorab: ja, das geht – mit einer LAMBDA-Funktion!

Dieser Artikel beschreibt, wie ich zu diesem Zweck meine benutzerdefinierte Excel-Funktion JSON.FROMRANGE implementiert habe. Um alle nachfolgend beschriebenen Schritte nachvollziehen zu können, ist ein Grundwissen zu der LAMBDA-Funktion empfehlenswert. Mein Artikel zur Einführung der LAMBDA-Funktion in Excel stellt die LAMBDA-Funktion und deren Fähigkeiten ausführlich vor.

Zudem wird JSON.FROMRANGE Gebrauch von zwei Hilfsfunktionen machen, die jeweils selbst LAMBDA-Funktionen sind. Die erste dieser Funktionen ist ISODATETIME, die im gleichnamigen Artikel genauer erläutert wird. Die zweite Hilfsfunktion ist eine in JSON.FROMRANGE integrierte, rekursive LAMBDA-Funktion, deren Prinzip ich im Artikel LAMBDA-Funktionen als Variable rekursiv verwenden beschrieben habe.

JSON.FROMRANGE
Read more

ISODATETIME

Categories: Excel, Lambda
Comments: No

Derzeit entwickle ich die LAMBDA-Funktion JSON.FROMRANGE, die Daten aus einem Zellbereich in ein JSON-Datenformat konvertieren soll. Das JSON-Datenformat kennt per Definition verschiedene Datentypen, wie beispielsweise Texte, Zahlen oder Wahrheitswerte. Jedoch ist im JSON-Datenformat kein expliziter Datentyp zur Darstellung von Datums-und Zeitangaben vorgesehen. In der Regel hat sich jedoch die ISO-Norm ISO 8601 zur Darstellung von Datum- und Zeitangaben in JSON-Dateien durchgesetzt. Hierbei werden Datums- und Zeitangaben in Textform, also als String, angegeben.

Um nun Datum- und Zeitabgaben innerhalb meiner Funktion JSON.FROMRANGE in das JSON-Format umzuwandeln, erschien es mir sinnvoll, dafür eine separate Funktion zu implementieren. Zumal die Funktion JSON.FROMRANGE sowieso schon recht komplex sein wird.

Dieser Artikel stellt die Funktion ISODATETIME vor, die diese Aufgabe übernimmt. Die Funktion implementiert jedoch nicht alle Definitionen der ISO-Norm. Beispielweise ist die Darstellung von Perioden oder Wochenangaben nicht enthalten. ISODATETIME basiert auf der Ende 2020 in Excel eingeführten LAMBDA-Funktion.

ISODATETIME
Read more

Seit Ende 2020 steht in Excel – derzeit noch in der Beta-Version – die Funktion LAMBDA zur Verfügung, die es ermöglicht benutzerdefinierte Funktionen anzulegen. Eine detaillierte Einführung zu der LAMBDA-Funktion ist hier zu finden. Welche Möglichkeiten LAMBDA bietet, zeigt beispielsweise meine benutzerdefinierte Funktion TEXT.SPLIT zum Aufteilen eines Textes nach Trennzeichen, die ich im gleichnamigen Artikel beschrieben habe.

LAMBDA-Funktionen können auch rekursiv aufgerufen werden, sofern ein Abbruchkriterium definiert ist. Da jedoch benutzerdefinierte Funktionen im Namensmanager abgelegt werden, sind rekursive Funktion recht schwer zu debuggen, da ja jedesmal die im Namensmanager hinterlegte Funktion geändert werden muss. Dieser Artikel zeigt einen Weg auf, wie sich einerseits LAMBDA-Funktionen als Variable verwenden lassen und andererseits eine Rekursion ohne Definition der LAMBDA-Funktion im Namensmanager realisiert werden kann.

LAMBDA-Funktionen als Variable rekursiv verwenden
Read more

After the new LAMBDA function was released in Excel early December 2020 and playing around a little bit with that function and its recursive features, I quickly asked myself: would it be possible to perform calculations with large numbers in Excel by only using formulas?

Now, some weeks later, I can say: yes, that’s possible! I started with some array and text functions as helper functions and then implemented LNUM.SUM for adding large numbers in Excel. After that, I created the function LNUM.SUBTRACT to be able to subtract two large numbers. And I finally implemented LNUM.PRODUCT for multiplying two larger numbers, which then uses LNUM.SUM and LNUM.SUBTRACT.

I wrote an article about each function in this blog, where I presented my formulas. However, I am mainly blogging in German. Online translators are not able to translate Excel formulas correctly and as my audience lastly increased by many English-speaking readers, I thought to write this article in English and summarize the German articles about my LAMBDAs for large numbers. The following sections about my functions are not so much detailed as the articles in German, but I hope, they will provide the basic understandings.

Large number calculations in Excel
Read more

LNUM.PRODUCT

Categories: Excel, Lambda
Comments: No

Nachdem ich in meinen vorherigen Artikeln die zwei LAMBDA-Funktionen LNUM.SUM und LNUM.SUBTRACT zum Addieren und Subtrahieren großer Zahlen in Excel vorgestellt hatte, war ich neugierig geworden, ob die Implementierung einer Funktion zur Multiplikation sehr großer Zahlen als rein formelbasierte Lösung ebenfalls möglich ist. Vorab – ja das geht und Excel rechnet sogar Hunderte von Multiplikationen großer Zahlen in akzeptabler Geschwindigkeit durch.

Dieser Artikel stellt die LAMDA-Funktion LNUM.PRODUCT vor, die zwei sehr großer Zahlen in Excel multipliziert, ohne auf externe Bibliotheken, wie z.B. Add-Ins, zurückzugreifen.

LNUM.PRODUKT
Read more