Clever-Excel-Forum

Normale Version: [LAMBDA] Benennung, Excel 4.0 Makros, Auflösungstrick
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin,

LAMBDA-Funktionsnamen sollten nicht den Namen einer bestehenden Excel-Funktion tragen. Beispielsweise empfiehlt es sich,
eine eigene LAMBDA-Funktion nicht als SORTIEREN zu benennen. Und auch nicht als SORT, da es dann spätestens in einem
englischen Excel einen Konflikt gibt.

Nun enthält Excel aber auch noch die sogenannten Excel 4.0 Makrofunktionen. Auch diese Namen sollten nicht zur Benennung
von LAMBDA-Funktionen verwendet werden. Die Frage ist nun, wer kennt noch die Excel 4.0 Makrofunktionen? Das dürften 
meines Erachtens wohl die wenigsten sein. Und schon mal gar nicht fremdsprachliche Namen.

Wo ich schon mal gerade hier beim Thema Excel 4.0 Makros bin, ich extrahiere gerade deren Übersetzungen. Interessant, dass
MS die auch noch in Sprachen übersetzt hat, die deutlich später Excel hinzugefügt wurden. Hier mal ein Auszug, den ich später
mal veröffentlichen werde.

[attachment=42287]

Es gibt allerdings einen Trick, um eine LAMBDA-Funktion, die den Namen einer bestehenden Funktion verwendet, explizit
als LAMBDA aufzulösen. Mal zwei Beispiele. Im Namensmanager die beiden Funktionen anlegen:

Code:
=LAMBDA(X;"Ich bin Lambda für Gruppieren")  > Diese als GRUPPIEREN im Namensmanager benennen (Excel 4.0 Makrofunktion)
=LAMBDA([X];"Ich bin Lambda für Sortieren") > Diese als SORTIEREN  im Namensmanager benennen

Wenn in den Zellen A1 und A2 folgende Formeln eingeben werden, erhält man eine Fehlermeldung:

Code:
=GRUPPIEREN(1)
=SORTIEREN()

Der Trick nun ist, die Benennung der LAMBDA-Funktion zu klammern. Damit wird sie als LAMBDA aufgelöst.
Folgendes funktioniert bei mir:

Code:
=(GRUPPIEREN)(1)
=(SORTIEREN)()

Insgesamt würde ich das Klammern aber nicht als Empfehlung, sondern eher als Notlösung sehen. Und bei einer Benennung
einer LAMBDA-Funktion bspw. Präfixe oder ähnliches zu verwenden; je nach Zielgruppe.

Gruß
"aufgelöst" soll vermutlich heißen: "wird als LAMBDA erkannt"?

Das Klammern dürfte dann auch den von Dir zu recht "ange-warn-ten" Punkt in LAMBDA-Funktionen, die innerhalb anderer LAMBDAs definiert werden (wie mein Ar.C statt ARRAY.COMBINE) wieder ermöglichen, oder?
Moin,

ja, mit aufgelöst meine ich, dass es als LAMBDA erkannt wird. Was den Punkt betrifft - habe ich nicht ausprobiert.

Der Grund aber Punkte zu vermeiden ist auch noch ein anderer: da würde gegebenenfalls ein Konflikt mit Datentypen
entstehen. Excel kann dann nicht mehr zwischen dem Datentyp und der LAMBDA unterscheiden. Mit Datentypen
meine ich solche wie bspw. für Aktien, Geografie oder eigene über PowerBI sowie deren Eigenschaften.

Gruß