Moin,
eine LAMBDA-Funktion, die aus einem Bereich JSON-Daten erstellt.
LAMBDA-Funktion ...
Gruß
eine LAMBDA-Funktion, die aus einem Bereich JSON-Daten erstellt.
Code:
Header : Kopfzeile, also Überschriften
Data : Datentabelle, also unterhalb der Kopfzeile
Types : optionale Angabe von Datentypen pro Spalte, als einzeiliger Bereich mit selben Ausmass wie die Kopfzeile.
Ohne Angabe erfolgt eine automatische Erkennung aus erster Datenzeile. Mögliche Werte:
1 = String
2 = Zahl
3 = Boolean
IsArray: JSON als Array mit [] drum herum
LAMBDA-Funktion ...
Code:
=LAMBDA(Header;Data;Types;IsArray;
LET(C;MIN(SPALTEN(Header);SPALTEN(Data));
R;ZEILEN(Data);
X;SEQUENZ(1;C);
Y;SEQUENZ(R);
F;LAMBDA(F;T;V;C;LET(R;WECHSELN(T;INDEX(V;C;1);INDEX(V;C;2));WENN(C<2;R;F(F;R;INDEX(V;SEQUENZ(C-1);{1.2});C-1))));
A;WENN(WENNFEHLER(--IsArray;0)>0;1;0);
T;WENN(ISTFEHLER(INDEX(Types;1;X));WENN(ISTTEXT(INDEX(Data;1;X));1;
WENN(ISTZAHL(INDEX(Data;1;X));2;
WENN(ODER(""&INDEX(Data;1;X)=""&(0>1);""&INDEX(Data;1;X)=""&(0<1));3;1)));
INDEX(Types;1;X));
WENN(A>0;"["&"{";"{")&
TEXTKETTE(ZEICHEN(34)&""&INDEX(Header;1;X)&ZEICHEN(34)&":"&" "&
WENN(ISTLEER(INDEX(Data;Y;X));"null";
WAHL(INDEX(T;1;X);ZEICHEN(34)&
F(F;INDEX(Data;Y;X);WAHL(SEQUENZ(4;2);"""";"\""";ZEICHEN(9);"\t";ZEICHEN(10);"\n";ZEICHEN(13);"\r");4)&ZEICHEN(34);
WECHSELN(""&WENNFEHLER(--INDEX(Data;Y;X);0);",";".");
WENN(WENNFEHLER(--INDEX(Data;Y;X);0);"true";"false")))&
WENN(X<C;",";WENN(Y<R;"}"&","&"{";"")))&
WENN(A>0;"}"&"]";"}")))
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner