Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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

Hilfe für PowerQuery Einsatz gesucht

Hilfe für PowerQuery Einsatz gesucht
26.03.2019 16:43:55
Stefan
Hallo zusammen,
dies ist ein Fortsetzungsthread zu https://www.herber.de/forum/archiv/1680to1684/t1682085.htm
Hier nochmals die Anforderung im Überblick:
evtl denke ich ja auch viel zu umständlich.
kurze Info - meine File umfasst eine Zeilenanzahl von 350000
Spalte A-D ist aus einem System z.B. C12
Spalte E-H ist aus einem anderen System z.B. FP0
Ich habe in beiden Systemen eine Datenbanktabelle wo ich prüfe welche Materialien in Verbund Spalte A&B in Spalte E&F zueinander gefunden werden. d.h. Welche Materialien sind in beiden Systemen vorhanden.
Ich brauche somit nur alle in beiden Systemen vorhandenen Materialien. Wenn ich diese habe - dann muss ich dazu noch prüfen, ob Spalte C&D mit G&H zum jeweiligen Material aus A&B und E&F zusammen passen oder nicht - wenn nicht dann gebe es mit z.B. Nicht OK aus
Konnte ich das besser erläutern?
Anbei der Link für die Beispieldatei: https://www.herber.de/bbs/user/128669.xlsx
Danke euch

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe für PowerQuery Einsatz gesucht
27.03.2019 10:37:15
ChrisL
Hi Stefan
C12 = Tabelle1
FP0 = Tabelle2
- Erstmal für Tabelle2 eine Powerquery erstellen d.h. nur die Quelle definieren (zwecks anschliessendem Merge).
- Neue PQ auf Tabelle1
- Anfügeabfrage (Tabelle2 in Tabelle1 anfügen)
- Typenkonvertierung Ganzzahl (führende Nullen entfernen)
- Typenkonvertierung Text (zwecks Verknüpfung Text&Text)
- Neue Spalte und verknüpfen
- überflüssige Spalten löschen
- Leerzellen durch "null" ersetzen (einheitliche Normierung)
- Gruppieren zwecks zählen von Duplikaten
- Filter wenn Anzahl grösser als 1
- Verknüpfte Spalte wieder trennen
- Typernkonvertierung zurück in Ganzzahl
- überflüssige Spalten löschen
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Angefügte Abfrage" = Table.Combine({Quelle, Tabelle2}),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Angefügte Abfrage",{{"MATNR", Int64.Type}}),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Geänderter Typ",{{"MATNR", type text}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ1", "MatWerks", each [MATNR]&[WERKS]),
#"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte",{"MATNR", "WERKS"}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Entfernte Spalten",{"MatWerks", "XCHAR", "XCHPF"}),
#"Ersetzter Wert" = Table.ReplaceValue(#"Neu angeordnete Spalten","",null,Replacer.ReplaceValue,{"XCHAR"}),
#"Ersetzter Wert1" = Table.ReplaceValue(#"Ersetzter Wert","",null,Replacer.ReplaceValue,{"XCHPF"}),
#"Gruppierte Zeilen" = Table.Group(#"Ersetzter Wert1", {"MatWerks", "XCHAR", "XCHPF"}, {{"Anzahl", each Table.RowCount(_), type number}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Gruppierte Zeilen", each [Anzahl] > 1),
#"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Gefilterte Zeilen", "Werks", each Text.End([MatWerks],4)),
#"Hinzugefügte benutzerdefinierte Spalte2" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte1", "Mat", each Text.Start([MatWerks],Text.Length([MatWerks])-4)),
#"Geänderter Typ2" = Table.TransformColumnTypes(#"Hinzugefügte benutzerdefinierte Spalte2",{{"Mat", Int64.Type}}),
#"Neu angeordnete Spalten1" = Table.ReorderColumns(#"Geänderter Typ2",{"MatWerks", "Mat", "Werks", "XCHAR", "XCHPF", "Anzahl"}),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Neu angeordnete Spalten1",{"MatWerks"})
in
#"Entfernte Spalten1"
cu
Chris
Anzeige
AW: hierzu ...
27.03.2019 13:01:44
neopa
Hallo Chris,
... würde ich vorschlagen, dass Du zusätzlich noch Deine Ergebnisdatei einstellst.
Hab mich noch wenig mit PQ beschäftigt und hatte jetzt auch Probleme Deine Angaben nachzustellen.
Mit der Datei dürfte es einfacher werden.
Gruß Werner
.. , - ...
vielleicht ;)
27.03.2019 19:22:39
ChrisL
Hi Werner
Vielleicht mache ich das nächste mal eine Antwortdatei.
Ist die Voraussetzung erst einmal gegeben d.h. eine Quellverbindung zu Tabelle2 vorhanden, kann man den "Code" einfach in den erweiterten Editor kopieren und fertig (neue Abfrage aus Tabelle1). Insofern erachte ich bei PQ eine Antwortdatei nicht für absolut zwingend, bei VBA Fragen wird ja oft auch nur der Code gepostet.
Zum Teil widerspiegelt meine Bequemlichkeit aber auch die Qualität der Beispieldatei. Kein Match in den Beispielen, Spalten C&D leer, kein klares Bild zum Ergebnis...
Nachträglich fällt mir übrigens auf, dass "Verketten" (und damit die unglückliche Typenkonvertierung von Zahl als Text) gar nicht nötig ist. Im Prinzip sollte es reichen eine Anfügeabfrage (Combine) zu machen, darauf die Gruppierung (Group) anwenden und filtern (SelectRows).
cu
Chris
Anzeige
AW: es wäre jedoch prima, ...
28.03.2019 13:12:41
neopa
Hallo Chris,
... wenn ich mir am Sonntag (da soll bei uns schlechtes Wetter werden) mal Deine Lösungsdatei anschauen könnte. Wäre das für Dich realisierbar?
Gruß Werner
.. , - ...
AW: es wäre jedoch prima, ...
28.03.2019 16:58:55
ChrisL
Hi Werner
Trotz schönem Wetter, habe ich die Datei kurz für dich erstellt ;)
https://www.herber.de/bbs/user/128728.xlsx
Was mit den leeren Spalten u.a. C&D geschehen soll, ist mir bis jetzt noch unklar.
Wie schon angetönt, das Verketten und Splitten ist nicht nötig.
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle3"]}[Content],
#"Angefügte Abfrage" = Table.Combine({Quelle, Tabelle1}),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Angefügte Abfrage",{{"MATNR", Int64.Type}}),
#"Ersetzter Wert" = Table.ReplaceValue(#"Geänderter Typ","",null,Replacer.ReplaceValue,{"XCHAR"}),
#"Ersetzter Wert1" = Table.ReplaceValue(#"Ersetzter Wert","",null,Replacer.ReplaceValue,{"XCHPF"}),
#"Gruppierte Zeilen" = Table.Group(#"Ersetzter Wert1", {"MATNR", "WERKS"}, {{"Anzahl", each Table.RowCount(_), type number}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Gruppierte Zeilen", each [Anzahl] > 1),
#"Entfernte Spalten" = Table.RemoveColumns(#"Gefilterte Zeilen",{"Anzahl"})
in
#"Entfernte Spalten"
cu
Chris
Anzeige
AW: prima ...
28.03.2019 20:02:26
neopa
Hallo Chris,
... vielen Dank :-) für Deine Bereitstellung der Datei und das bei schönen Wetter. Deshalb hab ich diese mir nun eben auch gleich angeschaut.
Auf die Problematik der leeren Zellen C&D hatte ich im Vorgängerthread auch hingewiesen. Ich hatte es so interpretiert, dass nur nur die mit einem Wert in beiden Spalten als Ergebniswert gesucht ist. Also in PowerQuery einfach noch die Datensätze mit leeren Zellen beider Spalten ausfiltern.
Gruß Werner
.. , - ...
AW: prima ...
01.04.2019 15:03:46
Stefan
Hallo zusammen,
sorry das ich mich jetzt erst melde aber ich war körperlich angeschlagen und es ging leider gar nichts.
also der Grund warum das C&D z.B. leer sind liegt daran, dass genau das gesucht werden muss.
Ich will es nochmal erklären und hoffe trotz der etwas ungenauen Erklärung bzw. fehlenden Daten auf Hilfe.
Also Spalte A-D sind aus einer Tabelle gezogen aus dem System C12
und Spalte E-H sind aus der gleichen Tabelle gezogen aus dem System FP0
Selbige Datenherkunftstabelle nur andere Systeme.
Nun ist es so - man möchte nur die Materialien prüfen, welchen in FP0 und C12 vorhanden sind.
das heißt man prüft Spalte A&B mit E&F und nur die Materialien welche übereinstimmen sollten dann in einen weiteren Check gehen. Der weitere Check soll dann die Spalte C&D mit der Spalte G&H betreffen
Also Suchkriterium ist wieder das Ergebnis aus der ersten Prüfung ob in beiden System vorhanden zu nehmen und dann zu sagen ist Spalte C&D mit G&H gleich wenn ja OK wenn nicht Nicht OK. ausgeben.
Hoffentlich konnte ich es besser erklären?
Sorry für alles. ab sofort antworte ich wieder zügiger.
Anzeige
AW: hierzu ...
01.04.2019 16:16:08
neopa
Hallo Stefan,
... hast Du Dir denn mal die Datei von Chris angeschaut und meinen ergänzenden Hinweis dazu gelesen?
Mehr zu PowerQuery findest Du hier. http://www.excel-ist-sexy.de/
Gruß Werner
.. , - ...
AW: hierzu ...
01.04.2019 16:20:50
Stefan
Hi Werner,
ja aber ich versteh nur Bahnhof.. und wenn ihr sagt ihr wisst nicht warum die C&D Leer sind dachte ich ihr habt die Aussen vor gelassen und das hilft mir nicht weiter.. aber die Datei hab ich vor mir... was ich jetzt damit aber machen soll weis ich überhaupt nicht.. sorry Ich schäme mich
AW: dafür gibt es keinen Grund ...
01.04.2019 16:38:29
neopa
Hallo Stefan,
... Du solltest Dich zunächst nur etwas mit PowerQuery vertraut machen (dazu hatte ich Dir den Link mit gepostet), dann wird es Dir verständlicher werden.
Gruß Werner
.. , - ...
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige