Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[LAMBDA] Benennung, Excel 4.0 Makros, Auflösungstrick
#1
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.

   

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ß
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
[-] Folgende(r) 2 Nutzer sagen Danke an maninweb für diesen Beitrag:
  • schauan, LCohen
Antworten Top
#2
"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?
Antworten Top
#3
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ß
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste