Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1832to1836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pfad für externe Verbindung variabel

Pfad für externe Verbindung variabel
13.06.2021 17:36:50
Jörn
Hallo,
ich möchte eine externe Verbindung variabler gestalten. Im erweiterten Editor ist der Pfad der Verbindung hinterlegt:
let
Quelle = Folder.Files("C:\Users\joern\Downloads"),
#"Gefilterte Zeilen" = Table.SelectRows(Quelle, each Text.StartsWith(Text.Lower([Extension]), ".json")),
#"Sortierte Zeilen" = Table.Sort(#"Gefilterte Zeilen",{{"Date created", Order.Descending}}),..........
ich suche eine Möglichkeit den Pfad durch eine Zelle zu bestimmen z. B. auf dem Blatt "NEU" Zelle A1. In Zelle a1 sollte dann der neue Pfad hinterlegbar sein.
Es wäre toll, wenn jemand eine Lösung für mich hätte, ich habe es alein leider nicht geschafft.
Gruss
Jörn

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pfad für externe Verbindung variabel
13.06.2021 17:46:36
Hajo_Zi
Hallo Jörn,
ändere über VBA, Daten, Verbindungen, Verknüpfung bearbeiten die Quelle.
Ein Bezug zur Zelle geht nur über Indirekt und dazu muss die Quelle auf sein.
GrußformelHomepage
mittels parameterabfrage oder function
13.06.2021 18:40:40
ralf_b
z.b. Tabelle tableConfig mit Pfad

 C
2https://namexy.sharepoint.com/sites/.......
dann

// Funktion um den Pfad aus der Tabelle zu holen
let Parameter=(TableName as text,RowNumber as number) =>
let
Quelle = Excel.CurrentWorkbook(){[Name=TableName]}[Content],
// Weet wird aus Spalte "Path" gelesen
value = Quelle{RowNumber-1}[Path]
in
value
in Parameter
// Aufruf in deiner Abfrage. in diesem Fall eine Webadresse aus Tabelle tabelConfig zeile 1
Quelle = Excel.Workbook(Web.Contents(#"fParam"( "tableConfig", 1)), null, true),

Anzeige
AW: mittels parameterabfrage oder function
14.06.2021 18:27:44
Jörn
Hallo Ralf,
Vielen Dank für deine Antwort.
Verstehe ich es richtig, dort im erweiterten Editor der Verbindung, wo Quelle steht muß ich alles ab let parameter...einsetzen?
Table name wäre bei mir Neu, bleiben die Klammern erhalten?
Row number 1, ,steht dafür die -1 ?
Aber wo kommt die Zeile hin ?
Es wäre nett, wenn du für das Beispiel "ZelleA1 im Blatt Neu" die Informationen einfügen könntest. Was ich probiert habe hat nicht funktioniert und ich weiß nicht ob ich falsche Klammern oder Werte für die Zelle eingesetzt habe.
Gruß
Jörn
AW: mittels parameterabfrage oder function
14.06.2021 19:27:00
Yal
Hallo Jörn,
in dem Fall geht es darum, dass Du in einem ExcelTabellenblatt eine separate Tabelle anlegt(Einfügen, Tabelle oder Strg+t), wo der Pfad liegt. Diese Tabelle hat in dem Beispiel von Ralf den Name "TableName". Dann baust Du darauf eine PQ-Abfrage, die Du in einen Parameter umwandelst. So kannst Du diesen Parameter in deiner Hauptabfrage verwenden.
VG
Yal
Anzeige
AW: mittels parameterabfrage oder function
14.06.2021 20:18:27
ralf_b
Hallo Jörn,
Ich muß dazu sagen, das ich diese Variante auch erst seit Kurzem kenne und noch wenig Erfahrung damit habe.
Evtl geht das ja auch einfacher bzw kürzer.
Mein Vorschlag soll so funktionieren.
Der Code von "let parameter" bis "in parameter" bildet eine eigene Abfrage als Function mit dem Namen "fParam" . Also die Parameterabfrage heißt fParam.
Diese Function schaut quasi auf eine Intelligente Tabelle im Arbeitsblatt. "TableName" und Rownumber sind nur Variablen innerhalb der Function.
Im Code mit der Quelle ist der Funktionsaufruf vom fParam mit dem echten Namen der intelligenten Tabelle und der Zeilennr. als Übergabeparameter der Funktion.
Rownumber -1 funktioniert einfach so. nicht drüber nachdenken. Wenn der gesuchte Wert in der ersten Zeile deiner Tabelle steht, dann wird das mit "Neu", 1 klappen.
Quelle = Excel.Workbook(Web.Contents(#"fParam"( "Neu", 1)), null, true),
Mit ein bissel rumprobieren bekommst du das hin.
Gruß
rb
Anzeige
AW: mittels parameterabfrage oder function
17.06.2021 15:58:47
Jörn
Hallo Ralf,
erst einmal herzlichen Dank,
wegen des schönen Wetters konnte ich erst jetzt deine Lösung ausprobieren. Ich habe also Quelle wie angegeben ersetzt und in Zelle A1 im Blatt neu den Pfad eingesetzt.. Leider hat es nicht funktioniert, ich habe folgende Fehlermeldung erhalten:
Expression Error Der Import fParam entspricht keinem Export. Dies ist möglicherweise auf einen fehlenden Modulverweis zurückzuführen.
Gruß
Jörn
AW: mittels parameterabfrage oder function
18.06.2021 06:32:17
ralf_b
Hallo Jörn,
Mit der Erklärung "habe es so und so gemacht" und "funktioniert nicht", kann man aus der Ferne nicht wirklich was anfangen.
Ohne deinen Code zu sehen und den Pfad zu kennen macht es wenig Sinn dir in dem Moment Hilfe anbieten zu wollen. Yal's Link scheint vielversprechend.
gruß
rb
AW: mittels parameterabfrage oder function
18.06.2021 17:03:42
Jörn
Hallo Ralf,
meine Abfrage sieht so aus (Erweiterter Editor der Verbindung Schluss gekürzt):
let
Quelle = Folder.Files("C:\Users\joern\Downloads"),
#"Gefilterte Zeilen" = Table.SelectRows(Quelle, each Text.StartsWith(Text.Lower([Extension]), ".json")),
#"Sortierte Zeilen" = Table.Sort(#"Gefilterte Zeilen",{{"Date created", Order.Descending}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Sortierte Zeilen", "Pfad", each [Folder Path]&[Name]),
#"Ergebnis1" = #"Hinzugefügte benutzerdefinierte Spalte"{0}[Pfad],
#"Ergebnis2" = Json.Document(File.Contents(#"Ergebnis1")),............
Die Quelle habe ich wie von dir vorgegeben ersetzt:
Quelle = Excel.CurrentWorkbook(){[Name=Neu]}[Content],
value = Quelle{RowNumber-1}[Path]
Und auf dem Blatt neu in Feld A1 den Pfad eingetragen: C:\Users\joern\Downloads
darauf habe ich die angegebene Fehlermeldung erhalten.
Ich werde mir Yals link natürlich ansehen, vielen Dank Yal!
Gruß
Jörn
Anzeige
AW: mittels parameterabfrage oder function
18.06.2021 17:40:29
ralf_b
Ich bin mir nicht sicher ob du meinen Vorschlag richtig verstanden hast.
Wo in deiner Abfrage definierst du denn den Wert, in Rownumber? Rownumber ist eine Variable ,die in meinem Vorschlag nur innerhalb einer eigenen Funktion(fParam) existiert. Mittels Funktionsaufruf (fParam tabellenname, Zeile) werden Werte an die Funktion übergeben und anhand dieser Werte dann der gesuchte Pfad aus einer Tabelle geholt.
In meinem Vorschlag wird davon ausgegangen das es eine Tabelle (Nicht ein Blatt) mit dem Namen "tableConfig" gibt. Dort existiert eine Spalte mit der Überschrift "Path" .
Wenn in deinem Tabellenblatt der Pfad in A1 steht. kann dort keine Spaltenüberschrift "Path"stehen. Somit geht der Aufruf value = Quelle{RowNumber-1}[Path] nicht.
Dazu evtl hilfreich. https://ssbi-blog.de/blog/business-topics/power-query-kennt-3-excel-objekte-nutzt-du-sie-richtig/
Anzeige
AW: mittels parameterabfrage oder function
18.06.2021 17:52:09
Jörn
Hallo Ralf,
offensichtlich habe ich deinen Vorschlag nicht richtig verstanden, ich werde es nochmal versuchen, Danke
GrußJörn
AW: mittels parameterabfrage oder function
19.06.2021 13:41:56
Hajo_Zi
offen bedeutet es soll noch eine Antwort kommen.
Warum ist dein Beitrag Offen.
Du willst doch was machen. Soll jemand vorbei kommen?
Ich konnte dies im Beitrag nicht lesen!
Das ist nur meine Meinung zu dem Thema.
GrußformelHomepage
Anzeige
AW: mittels parameterabfrage oder function
19.06.2021 15:39:09
Jörn
Hallo Ralf, hallo Yal,
Ich hatte noch einen dummen Fehler drin, aber jetzt hat es funktioniert.
Herzlichen Dank noch einmal für euere Hilfe.
Hallo Hajo,
Ich finde es richtig den Beitrag offen zu lassen, wenn man noch dabei ist, die Lösung zu prüfen und sich noch eine Frage ergeben kann. Die, die geholfen haben und die, die das Thema interessiert möchten sicherlich auch wissen, ob die vorgeschlagene Lösung funktioniert hat.
Ich freue mich jedenfalls, dass ich nach deinem ersten Beitrag nicht gleich aufgegeben und durch die Hilfe von Ralf und Yal eine Lösung gefunden habe.
Gruß Jörn
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige