fester Bezug auf eine ID bei Power Query Abfrage
#1
Hallo zusammen,

in Bezug auf meine PowerQuery Tabellen habe ich jetzt im Live Betrieb ein Problem festgstellt.

Ich habe zwei Exceltabellen (zwei verschiedene Dateien mit unterschiedlichen Dateinamen), die ich mittels einer PowerQuery wechselseitig verknüpft habe.

Tabelle Alpha (in Exceldatei 1) hat Daten in Spalten A-F.

Diese Daten werden in die Tabelle Beta (in Exceldatei 2) mittels PowerQuery übertragen.
Tabelle Beta hat jetzt noch drei Spalten G,H und I, die wiederum mittels PowerQuery in Tabelle Alpha übertragen werden.

Hintergrund ist, dass Tabelle Alpha ein Passwort hat und da die Stammdaten liegen.
In Tabelle B sollen nur ein paar Mitarbeiter in den Spalten G,H und I schreiben können. Sie sollen aber nichts aus den Spalten A-F ändern können. Im Grund hat so jeder seine eigene Arbeitstabelle.


In Tabelle Alpha gibt es eine fest ID für jeden Datensatz. Allerdings gibt es auch ein Ergeinisdatum für jeden Datensatz und je nachdem wenn neu danach sortiert wird verändern die Datensätze ihre Reihenfolge.
Heißt ID 3 und ID 4 tauschen den Platz bzw. die Zeilennummer.
Die Datensätze in Tabelle Beta sind aber quasi fest, so dass diese dann natürlich nicht mehr mit der ID aus Tabelle Alpha zusammenpassen.

Ich habe mir schon einen Workaround überlegt aber der löst das Problem nur teilweise und bedeutet Mehraufwand für die Kollegen, die ihre Daten in Tabelle Beta eingeben.

Würde mich freuen wenn jemand eine Lösung dazu hätte.

Vielen Dank schon mal im voraus.

Schönen Gruß

Mav
Antworten Top
#2
Hi,

wenn die ID von Anfang an vorhanden ist, dann ist es vollkommen egal, wonach die Datensätze sortiert werden, denn die ID verändert beim sortieren zwar ihre Position, jedoch nicht ihren Wert. Und eine ID sollte selbstverständlich immer unveränderlich (also fest) sein. Irgendwie erkenne ich Dein Problem nicht.
Wenn allerdings beim einlesen der passwortgeschützten Alpha Datei das Passwort automatisch übergeben wird, dann kannst Du Dir das gesamte Prozedere sowieso sparen.... kann ja dann jeder dem M-Code entnehmen...
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
#3
Ich versuche es nochmal anders zu beschreiben.

In Tabelle Alpha liegen die Basisdaten:

Spalte C: feste, unveränderliche ID
Spalte D: Name
Spalte F: Ereignisdatum

Jetzt kann es sein, dass es mehrere Namen mit gleichem Ereignisdatum gibt. Wenn ich die Spalte F aufsteigend sortiere, dann die Spalte D sortiere und dann wieder die Spalte F aufsteigend sortiere habe ich nicht die gleiche Reihefolge wie zu Beginn. Sprich es kann sein, dass ID 3 und 4 die Plätze getauscht haben.

In Tabelle Beta habe ich ergänzende Daten zur Tabelle Alpha. Dort sind in Zeile 2 bis 50 jeweils Daten eingetragen. Die Inhalte aus Alpha und Beta werden jeweils wechselseitig mittels Query in die andere Tabelle geladen.
Nach erfolgter neuer Sotieren steht jetzt z.B. in Zeile 6 der Betatabelle der Datensatz, der zuvor für die ID 4 galt. Weil ID 3 und 4 in der Alphatabelle ja ihre Plätze getauscht haben werden diese jetzt auch vertauscht in der Betatabelle angezeigt und die Zuordnung passt nicht mehr.

Ich hoffe das war jetzt verständlicher.


Schönen Gruß

Mav
Antworten Top
#4
Hallöchen,

um zur ursprünglichen Sortierung zu kommen, musst Du nach Spalte C sortieren ....
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Die Standard-Sortierung erfolgt nach Spalte F, dem Ereignisdatum. Es ist quasi eine Frist die runterläuft basierend auf dem Abgleich heutiges Datum und Ende der Frist.
So ist Tabelle Alpha grundsätzlich sortiert. Wenn ich jetzt aber mal auf Spalte D, Namen, sortiere und dann wieder auf Spalte F, dem Ereignisdatum, so kann es vorkommen, dass ich eine andere Reihenfolge meiner Datensätze in Tabelle Alpha habe.

Diese veränderte Sortierung wird dann mittels des PowerQuery in die Tabelle Beta gespiegelt. In Tabelle Beta passen dann aber die Datensätze, die man dort einträgt nicht mehr 1:1 zu den gepspiegelten Datensätzen aus Tabelle Alpha. Somit erhält man ein falsches Ergebnis angezeigt.
Antworten Top
#6
Hallöchen,

Zitat:Sprich es kann sein, dass ID 3 und 4 die Plätze getauscht haben.
Zitat:Wenn ich jetzt aber mal auf Spalte D, Namen, sortiere und dann wieder auf Spalte F, dem Ereignisdatum, so kann es vorkommen, dass ich eine andere Reihenfolge meiner Datensätze in Tabelle Alpha habe.
... also kann es Fälle geben, wo der ID-Tausch ok ist? Wenn die ID nicht die chronologische Reihenfolge widerspiegelt oder was immer die ursprüngliche Sortierung ist, dann solltest Du eine Spalte nutzen, die das berücksichtigt - z.B. zusätzlich zum Ereignisdatum noch eine Ereigniszeit (falls nicht zwei Ereignisse zeitgleich passieren können).
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hallo,

wenn die Position eines Datensatzes eine Rolle spielt, ist die ID nicht eindeutig.

Viele Grüße
derHöpp
Antworten Top
#8
Ich danke euch schon mal für die Antworten.

Die ID ist in meinen Augen eindeutig. Es steht dort eine bestimmte Buchstaben-Zahlen-Kombination, die jeweils nur ein Mal auftritt.

Die Tabelle Alpha wird grundsätzlich nach Spalte F sortiert.

Tabelle Alpha                                           Tabelle Beta

Spalte C       Spalte F
ID 3             20.01.24                             Mitarbeiter A
ID 4             25.01.24                             Mitarbeiter G
ID 5             25.01.24                             Mitarbeiter M
ID 6             28.01.24                             Mitarbeiter P

Jetzt wird mal nach dem Namen aus Spalte D sortiert und dann direkt wieder auf Spalte F, dem Ereginisdatum, sortiert. Danach sieht die Tabelle so aus:


Tabelle Alpha                                           Tabelle Beta

Spalte C       Spalte F
ID 3             20.01.24                             Mitarbeiter A
ID 5             25.01.24                             Mitarbeiter G
ID 4             25.01.24                             Mitarbeiter M
ID 6             28.01.24                             Mitarbeiter P


Die Daten aus Tabelle Alpha werden ja mittels Query in die Tabelle Beta übermittelt.
Durch das veränderte Sortieren haben ID 5 und ID 4 die Plätze getauscht.
Das heißt aber nun, dass die Mitarbeiter, welche in Tabelle Beta stehen, auf ein Mal eine andere ID "zugewiesen" bekommen. Und das soll nicht passieren.

Die Vorgehensweise ist so, dass alle Daten aus Tabelle Alpha in Tabelle Beta mittel Query übertragen werden. Immer dann, wenn der Mitarbeiter eine ID abgearbeitet hat, soll er in Tabelle B seinen Namen eintragen.
Durch die veränderte Sortierung würde es aber dann dazu kommen, dass der Mitarbeiter G, der ursprünglich die ID 4 gemacht hat, dies so einträgt und nach der neuen Sortierung es so aussieht, dass er die ID 5 bearbeitet hat.

Die Daten in Tabelle Beta bleiben quasi immer fest in den Zellen stehen und passen sich nicht den überspielten Daten aus Tabelle Alpha an.

Ich hoffe das erklärt es etwas besser.
Antworten Top
#9
Hallöchen,

wenn Du Beta anhand der MA aufgebaut hast, dann hole die zugehörige ID per Formel aus Alpha. Wobei es korrekt wäre, den Namen anhand der eindeutigen ID zu holen - Namen könnten ja mehrfach auftreten ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
Wie meinst du das genau?


Also Tabelle Alpha bleibt im Grunde gleich und ändert sich nur ab und zu mal, wenn eine neue ID hinzukommt oder gelöscht wird.
Tabelle Beta wird immer zu Jahresbeginn neu erstellt.

Jeder MA hat eine gewisse Anzahl an IDs zu erledigen und wenn das erfolgt ist, soll er das in die jeweilige Spalte in Tabelle Beta eintragen.

Jetzt kann es halt vorkommen, dass die IDs aus Tabelle Alpha ihre Plätze tauschen. Manchmal sind das auch fünf IDs, die dann in einer vollkommen anderen Reihenfolge stehen (innerhalb ihrer Fünferrange). Kann das gerade nicht besser beschreiben, hoffe aber du verstehst was ich meine. Bei zwei IDs gibt es nur zwei Konstellationen. Bei drei IDs sind es schon sechs Konstellationen.


Meine Idee des Workarounds ist, dass ich in Tabelle Beta noch Hilfsspalten einbaue, die eine Abfrage der ID macht.
Aber dann bleibt es immer noch statisch und Tabelle Beta passt sich nicht der neuen Sortierung von Tabelle Alpha an.

Huh
Antworten Top


Gehe zu:


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