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.

Power Query: wie in der Query ermitteln, aus welchem Blatt sie gestartet wird?
#1
Hi Ihr Excelperten:

auf welchem Wege kann ich in einer Query ermitteln, aus welcher Tabelle sie aufgerufen wird?

folgende Situation:
  • auf einem XL-Blatt habe ich eine Zelle mit einem (Blatt-lokalen) Namen versehen
  • eine Abfrage ermittelt diesen Namen und verwendet diesen zur Berechnung des Ergebnisses, das als Tabelle wieder in diesem Blatt landet
  • dazu muss ich in PQ mit der Struktur [Blatt-Name]![definierter Name] auf den Blatt-lokalen Namen zugreifen
Das Problem ist nun, wenn ich das Blatt kopiere  --> dann enthält diese Kopie denselben Namen, der aber u.U. mit anderem Inhalt versehen wird.

Wie kann ich in meiner Abfrage dafür sorgen, dass sie immer den im jeweiligen Blatt definierten (Blatt-lokalen) Namen einliest? Will heißen, wie kann ich ermitteln, welches XL-Blatt die Abfrage 'auslöst' und dementsprechend dann den Teil [Blatt-Name] im Zugriff auf den lokalen Namen korrekt anpassen?

Danke für Eure Hinweise – irgendwie befürchte ich, dass ich den Wald vor lauter Bäumen nicht sehe.

Gruß,
RaiSta
 Man(n) ist nie zu alt für die Erkenntnis, dass das bisher Gelernte doch nur bedingt gültig oder auch nur brauchbar ist. 27
Antworten Top
#2
Moin,

die Abfrage ist keine Eigenschaft des Blattes, sondern des Workbooks. 

Viele Grüße
derHöpp
Antworten Top
#3
(21.03.2023, 18:49)derHoepp schrieb: die Abfrage ist keine Eigenschaft des Blattes, sondern des Workbooks. 

... aber der Aufruf kann ja aus einem Blatt heraus erfolgen (z.B. wenn ich auf einer Tabelle mit Rechtsklick den Punkt 'Aktualisieren' aufrufe, dann wird aus einem XL-Blatt heraus gestartet).

Kann ich in der Query ermitteln, wodurch die Abfrage gestartet wurde?

Gruß und Dank,
RaiSta
 Man(n) ist nie zu alt für die Erkenntnis, dass das bisher Gelernte doch nur bedingt gültig oder auch nur brauchbar ist. 27
Antworten Top
#4
Ich glaube das geht nicht.
Warum beschreibst du in dem Blatt nicht eine Zelle mit dem Blattnamen(geht auch per Formel) und liest den auch ein?
Warum definierst du blattweit gültige Namen und nicht mappenweit Gültige? 
Bei mappenweit gültigen Namen gibts keine Doppelten.
Antworten Top
#5
(22.03.2023, 01:35)ralf_b schrieb: Ich glaube das geht nicht.
Schade, scheint mir auch so...
(22.03.2023, 01:35)ralf_b schrieb: Warum beschreibst du in dem Blatt nicht eine Zelle mit dem Blattnamen(geht auch per Formel) und liest den auch ein?
Hilft in meiner Situation leider nichts, denn die Query sieht ja alles in der Mappe. Dann muss ich der Query immer noch sagen, aus welchem Blatt sie die Zelle auslesen soll - das hätte ich halt gerne automatisiert gehabt..
(22.03.2023, 01:35)ralf_b schrieb: Warum definierst du blattweit gültige Namen und nicht mappenweit Gültige? 
Bei mappenweit gültigen Namen gibts keine Doppelten.
Stell Dir vor, ich erstelle eine Mappe, in der ich für jeden Monat eines Jahres bestimmte Dinge berechnen und darstellen möchte. Dann erstelle ich das Blatt z.B. für Januar inklusive aller Blatt-bezogenen Namen. Wenn das Blatt so tut, wie ich möchte, kopiere ich das Blatt noch 11 mal und benenne die Blätter den Monaten entsprechend.
Aufgrund der Blatt-lokalen Namen enthält jedes Blatt dieselben Namen, alle Formeln im Blatt haben dieselben Formeln, die diese Namen verwenden.

Bei reinen 'globalen' Namen, die also mappenweit gelten, muss ich jeweils eigene Namen für die Monatsblätter definieren und die Formeln für jedes Blatt umschreiben. ...da sind Blatt-lokale Namen in meinem Verständnis viel angenehmer.

Gruß,
RaiSta
 Man(n) ist nie zu alt für die Erkenntnis, dass das bisher Gelernte doch nur bedingt gültig oder auch nur brauchbar ist. 27
Antworten Top
#6
Hi

Verzwicktere Probleme bedürfen einer etwas besseren Darstellung. (Bsp.Datei.)

Zitat:Hilft in meiner Situation leider nichts, denn die Query sieht ja alles in der Mappe. Dann muss ich der Query immer noch sagen, aus welchem Blatt sie die Zelle auslesen soll - das hätte ich halt gerne automatisiert gehabt..
Was den Code betrifft sehen wir gar nichts.

Das mit dem Kopieren ist auch nur zum Teil erklärt. Sind z.B im Blatt auch int.Tabellen? Weil die ja dann beim kopieren andere Namen bekommen.

Gruß Elex
Antworten Top
#7
Hi RaiSta,


Zitat:...Hilft in meiner Situation leider nichts, denn die Query sieht ja alles in der Mappe. Dann muss ich der Query immer noch sagen, aus welchem Blatt sie die Zelle auslesen soll ...

...irgendwie verstehe ich das Problem nicht.... 
Du musst doch sowieso jeder Query eine Quelle zuweisen? Wenn Du die Mappe selbst als Quelle angibst, erhältst Du doch alle möglichen (Teil-)Quellen. Selbst wenn Du daraus alle Blätter und/oder Tabellen einer Mappe in einer Query kombinierst, dann kannst Du doch die Blattnamen (Sheets) oder Tabellennamen (Table) beibehalten und in je einer eigenen Spalte ausgeben und somit auch separieren lassen oder entsprechend gruppieren...

Aber wie gesagt...  ...irgendwie verstehe ich das Problem nicht....
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#8
Ich verstehe es auch nicht!!!!

Wenn ich in einer neuen leeren Mappe der Zelle A1 den Namen "WK_Datum" zuweise und in die Zelle die Formel: =Heute() eintrage, sehe ich das heutige Datum in A1. Markiere ich nun das ganze Tabellenblatt und kopiere den Inhalt auf ein neues Tabellenblatt, dann wird zwar die Formele aus A1 übernommen, nicht aber der zugewiesene Name. Auch manuell kann ich den bereits vergebenen Namen, in Tabelle2 nicht erneut zuordnen.

Insofern frage ich mich, wie das bei dir funktionieren sollte, dass beim kopieren von Tabellenblätter, zugewiesene Namen mitkopiert und somit dupliziert werden?
Antworten Top
#9
@ws-53: Dann mach dich mal über das Konzept von lokalen und globalen Namen schlau!
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#10
Helmut,

hier geht's nicht um VBA sondern um PQ. Die einzigen Namen in Excel, die PQ interessieren, sind die von Sheets (Tabellenblättern) oder Tables (formatierten Tabellen). Ob Du irgendwo einen benutzerdefinierten Bereich in Excel irgendwie benannt hast, spielt für PQ keine Rolle...
Es sei denn, Du meinst Variablennamen innerhalb der Query oder Querynamen, auf die Du Dich beziehst. Aber bezogen auf die reinen Excelnamensbereiche, die interessieren PQ nicht...
Oder hast Du da andere Informationen? Falls ja, die würden mich auch interessieren...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top


Gehe zu:


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