Clever-Excel-Forum

Normale Version: Power Query: wie in der Query ermitteln, aus welchem Blatt sie gestartet wird?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
Moin,

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

Viele Grüße
derHöpp
(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
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.
(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
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
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....
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?
@ws-53: Dann mach dich mal über das Konzept von lokalen und globalen Namen schlau!
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...
Seiten: 1 2