Clever-Excel-Forum

Normale Version: [Lambda] Debugging
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Danke, maninweb ;)

Man kann auch eine Debugfunktion einbauen:

=LAMBDA(Arg1;Arg2;...;Debugging;LET(
a;...
b;...
...
y;...
z;...
WAHL(Debugging+1;z;a;b;...;y)))

Lässt man den Parameter Debugging leer (=0), wird die Funktion normal aufgerufen. Bei 1, 2, ....,25 hingegen werden die vorher definierten Zwischenschritte der Funktion in der durch WAHL spezifierten Reihenfolge (oder auslassend) zurückgegeben, und zwar praktischerweise gleich als Zelle oder Array. Das ist dann wie ein Debugging-Window, nur gleich im Arbeitsblatt.
_________________________________
Als technische Bibliotheks-Funktionen, die in allen Array-LAMBDAs gebraucht werden dürften, fallen mir momentan ein:

HEADER regelt die Verwendung von Spaltenüberschriften an Quelle und Ziel
SIZES erfasst alle Arraydaten (Adresse, Länge, Breite, Laufvariable x, Laufvariable y)

Wie gesagt: Leider sind sie umständlich bei der Verwendung, da ich für die Arraylänge schreiben muss: =INDEX(HEADER;2)
Exkurs

herber.de/excelformeln/pages/Hoechstwert_bzw_Tiefstwert_einer_Zelle_einfrieren.html
herber.de/excelformeln/pages/Wo_A1_draufsteht_steckt_nicht_immer_A1_drin.html

sind drei nette Tricks; der letzte (Benennung einer Zelle mit dem Namen A1) klappt unter xl365 nicht mehr, aber die Mehrfachoperations-Sache ohne Zirkel ist immer noch möglich.

Exkurs Ende
___________________________

Für den Parameter "Debugging" in einer LAMBDA-Fkt, wie eben besprochen, kann man auch noch die "Politik des gelangweilten Fingers" verwenden, ohne in eine Zelle den gewünschten Debugging-Parameter immer händisch eingeben zu müssen:

=KÜRZEN(REST(TEXT(JETZT();"s");10)/2,5+1) gibt auf das Drücken von F9 einen der Werte 1 bis 4 zurück, um entsprechend 4 Debugging-Werte in WAHL zu versorgen.

=KÜRZEN(REST(TEXT(JETZT();"s");10)*7/10+1) macht daraus z.B. 7.

Durch geeignete Transformationen kann man die Zeitabstände auf seine Bedürfnisse anpassen. Denn bei 1-7 müsste ich alle 1,4 Sekunden drücken, um jeden Wert zu erwischen. Das kann ich z.B. auf 2,8 Sekunden verlangsamen:

=KÜRZEN(REST(TEXT(JETZT();"s");20)*7/20+1)