M Parametrisierte Funktion zur Pfadabfrage

Moderator: ModerationP

M Parametrisierte Funktion zur Pfadabfrage

Beitragvon Ralf A » 23. Okt 2021, 12:40

Hi All,

eigentlich ist Andres Thehos ja 1. Anlaufstation für solche Fragen, habe hier:https://www.youtube.com/watch?v=VM7jbl3Y-2M&list=PLRvJRREE9cUnhY3qGjw1YTFAsiPs2CjSX&index=4 auch genau das gefunden, was ich bräuchte, nur... funktioniert es nicht bei mir.

Kurz zu den Ausgangsbedingungen:
Habe, analog zum Video, eine formatierte Tabelle erstellt.
Die hat die Spaltenüberschriften "Parameter" und "Wert" (kleine individuelle Anpassung zum Video)
und unter Parameter steht "Pfad" (als Text) und unter Wert soll ein beliebig austauchbarer Ordnerpfad eingetragen werden können.
Die formatierte Tabelle selbst heißt "tblSteuerung"

Dann habe ich eine neue Funktion in PQ erstellt. Die heißt "fktPfad"
Der M-Code darin:
Code: Alles auswählen
(feldinput as text) =>
let
    Quelle = Excel.CurrentWorkbook() {["tblSteuerung"]}
    Zeile = Table.SelectRows(Quelle, each ([Parameter] = feldinput)) [Content],
    Pfad =
    if Table.IsEmpty(zeile) = true
        then null
    else Record.Field(Zeile(0),"Wert")
in
    Pfad


Wobei Zeile sicher auch weggelassen werden könnte, da es ja (im Augenblick) nur eine auszuwertende Datenzeile gibt. Doch das nur nebenbei.

Problem: Er meckert mir in der Zeile:
Quelle = Excel.CurrentWorkbook() {["tblSteuerung"]}
"tblSteuerung" als ungültigen Bezeichner an. Aber ich schwöre, die formatierte Tabelle heißt tatsächlich so.

Frage: Weiß jemand was da schiefläuft und wie kann man das beheben?

Vielen Dank schon mal!
Zuletzt geändert von Ralf A am 23. Okt 2021, 12:48, insgesamt 1-mal geändert.
Ciao, Ralf
Wer glaubt, für ihn persönlich würde der Bremsweg nicht als Funktion proportional zum QUADRAT der Geschwindigkeit steigen, der ist halt nicht „frei“, sondern ein Narr.
Ralf A
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1144
Registriert: 17. Mär 2018, 11:47

Re: M Parametrieserte Funktion zur Pfadabfrage

Beitragvon Ralf A » 23. Okt 2021, 12:46

Ha!

hab vorher zwar stundenlang gesucht, aber kaum schickt man die Frage ab, schon findet man die Lösung selbst.... :D

Die Funktion muss so aussehen:
Code: Alles auswählen
(feldinput as text) =>
let
    Quelle = Excel.CurrentWorkbook() {[Name = "tblSteuerung"]},
    Zeile = Table.SelectRows(Quelle, each ([Parameter] = feldinput)) [Content],
    Pfad =
    if Table.IsEmpty(Zeile) = true
        then null
    else Record.Field(Zeile(0),"Wert")
in
    Pfad


....dann klappts auch mit dem Nachbarn... :D
Thema hat sich somit erledigt. Aber Danke fürs Anschauen....
Schönes Wochenende Euch Allen!
Ciao, Ralf
Wer glaubt, für ihn persönlich würde der Bremsweg nicht als Funktion proportional zum QUADRAT der Geschwindigkeit steigen, der ist halt nicht „frei“, sondern ein Narr.
Ralf A
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1144
Registriert: 17. Mär 2018, 11:47

Re: M Parametrisierte Funktion zur Pfadabfrage

Beitragvon losgehts » 25. Okt 2021, 17:59

Hallo Ralf,

ich glaube, es lag einfach daran, dass du "Zeile" mal groß und mal klein geschrieben hast - aber egal....

Mir hilft bei so etwas ein "gescheiter" Editor. Und in den letzten Monaten hat sich bei mir Visual Studio Code in vielen Programmiersprachen fast schon komplett durchgesetzt (außer VBA). Unter anderm eben auch in M. Ist zwar etwas nervig, dass ich dann immer in den "erweiterten Editor" von PowerQuery kopieren muss, aber dafür habe ich eine automatische Code-Vervollständigung, Syntax-Überprüfung etc Und wenn ich Funktionen aufrufe (wie z.B. List.Accumulate()) dann sehe ich sofort, welche Parameter erwartet werden und von welchem Typ sie sind.
Und ich sehe eben auch sofort, ob mit "zeile" auch die Variable "Zeile" assoziiert wird.
Du siehst, ich bin begeistert.

Ich liebe zwar eigentlich meinen alten Editor PsPad, aber VSCode finde ich inzwischen immer besser. Übrigens ist VSCode kostenlos, ist (wenn ich richtig informiert bin) OpenSource, wird aber u.a. von Microsoft mitentwickelt. Es gibt für unglaublich viele Programmiersprachen AddOns und auch Dinge wie Git etc lassen sich damit erledigen - wenn man will. Mir gefällt einfach, dass der Editor relativ klein und schlank ist und man ihn aber auch fast zu einer ausgewachsenen IDE mit den ganzen AddOns erweitern kann (z.B. kann ich unter python damit gut debuggen). Und was mir letztendlich noch so gut gefällt ist der Umstand, dass ich ihn unter Linux und Windows (MAC geht angeblich auch) gleichermaßen benutzen kann - das finde ich einfach supergut!!

VS-Code kannst du einfach mit dem AddOn "Power Query / M Language" für M fit machen. Mir hat der Editor jedenfalls sehr geholfen, ein paar M-Codes zu schreiben. Wirklich Erfahrung in M habe ich aber auch nicht - kann also gut sein, dass es da noch etwas besseres gibt...

viele Grüße,
Ulrich
Ich freue mich über jede Art von Feedback
Die Forensoftware sendet mir aktuell keine Benachrichtigungen mehr zu, daher kann es gut sein, dass ich deine Antwort auf meinen Post nicht mitbekomme.
losgehts
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4704
Registriert: 03. Okt 2006, 14:08

Re: M Parametrisierte Funktion zur Pfadabfrage

Beitragvon DerHoepp » 25. Okt 2021, 19:56

Ulrich!

vielen Dank für die Idee! Das ich nicht selbst drauf gekommen bin einfach mal im VSCode-Repository nachzusehen!

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9849
Registriert: 14. Mai 2013, 11:08

Re: M Parametrisierte Funktion zur Pfadabfrage

Beitragvon Ralf A » 26. Okt 2021, 07:32

...auch von mir ein Dankeschön! Wirklich gute Idee! Hätte im Traum nicht daran gedacht, M in VS zu schreiben.... :)
Ciao, Ralf
Wer glaubt, für ihn persönlich würde der Bremsweg nicht als Funktion proportional zum QUADRAT der Geschwindigkeit steigen, der ist halt nicht „frei“, sondern ein Narr.
Ralf A
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1144
Registriert: 17. Mär 2018, 11:47

Re: M Parametrisierte Funktion zur Pfadabfrage

Beitragvon losgehts » 26. Okt 2021, 18:39

Hey,

ich bin ja auch noch recht unerfahren mit VSCode, aber seit dem ich gesehen habe, dass es sogar mehrere AddOns für eine spezielle "Sprache" zur Steuerung von Simulationen (Ansis APDL) gibt, schließe ich bei VSCode nichts mehr aus. Ich glaube, die Community ist recht groß, wobei ich noch nie Kontakt hatte.

Freut mich, dass es was für euch ist.

Benutzt ihr eigentlich VS oder VSCode? Und benutzt ihr es auch für VBA?

Viele Grüße,
Ulrich
Ich freue mich über jede Art von Feedback
Die Forensoftware sendet mir aktuell keine Benachrichtigungen mehr zu, daher kann es gut sein, dass ich deine Antwort auf meinen Post nicht mitbekomme.
losgehts
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4704
Registriert: 03. Okt 2006, 14:08

Re: M Parametrisierte Funktion zur Pfadabfrage

Beitragvon Ralf A » 30. Okt 2021, 18:53

Hi Ulrich,

nee... war ein Mißverstandnis von mir. Ich dachte, Du meintest VS. Aber nach Klick auf Deinen Link, war der Irrtum klar.... :)

Aber! Bin bei meinen weiteren Recherchen auf eine echte Überraschung gestoßen. Power BI. Kann man hier: https://powerbi.microsoft.com/de-de/downloads/ herunterladen. Da kann man n icht nur den M- Code mit echter Intellisens erstellen, man kann ihn auch gleich anwenden.
Ciao, Ralf
Wer glaubt, für ihn persönlich würde der Bremsweg nicht als Funktion proportional zum QUADRAT der Geschwindigkeit steigen, der ist halt nicht „frei“, sondern ein Narr.
Ralf A
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1144
Registriert: 17. Mär 2018, 11:47

Re: M Parametrisierte Funktion zur Pfadabfrage

Beitragvon losgehts » 05. Nov 2021, 13:48

Hallo Ralf,

danke für die Info! Ich werde mir das bei Gelegenheit mal anschauen - das interessiert mich. Bin ein bisschen erstaunt, dass das kostenlos sein soll (oder habe ich was übersehen).

Viele Grüße,
Ulrich
Ich freue mich über jede Art von Feedback
Die Forensoftware sendet mir aktuell keine Benachrichtigungen mehr zu, daher kann es gut sein, dass ich deine Antwort auf meinen Post nicht mitbekomme.
losgehts
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4704
Registriert: 03. Okt 2006, 14:08

Re: M Parametrisierte Funktion zur Pfadabfrage

Beitragvon Ralf A » 05. Nov 2021, 14:05

...nein, Du hast nix übersehen. Kostenpflichtig wird es (wenn ich das recht verstanden habe) erst, wenn Du ein entsprechendes Konto einrichten willst. Aber man braucht ja nicht unbedingt immer ein eigenes... Man braucht eigentlich nur dann eins, wenn man das Projekt teilen will. Zum Entwickeln braucht man kein Konto.
Letztendlich ist es aber egal. Man muss ja auf kein *.pbix Projekt bestehen. Den Code kann man genausogut in Excels Power Query verwenden.
Ciao, Ralf
Wer glaubt, für ihn persönlich würde der Bremsweg nicht als Funktion proportional zum QUADRAT der Geschwindigkeit steigen, der ist halt nicht „frei“, sondern ein Narr.
Ralf A
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1144
Registriert: 17. Mär 2018, 11:47

Re: M Parametrisierte Funktion zur Pfadabfrage

Beitragvon losgehts » 05. Nov 2021, 17:34

Hallo Ralf,

hey, danke! Cool zu wissen.

Vielen Dank und viele Grüße,
Ulrich
Ich freue mich über jede Art von Feedback
Die Forensoftware sendet mir aktuell keine Benachrichtigungen mehr zu, daher kann es gut sein, dass ich deine Antwort auf meinen Post nicht mitbekomme.
losgehts
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4704
Registriert: 03. Okt 2006, 14:08


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 25 Gäste

cron