Anzeige
Archiv - Navigation
1892to1896
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

Power Query anfügen von Spalten

Power Query anfügen von Spalten
13.08.2022 17:58:00
Spalten
Hallo
Habe eine Frage an die Profis mit Power Query. Bin schon seit Wochen im Netz am suchen und rumprobieren, leider liegen nun meine Nerven ganz blank und in der Erde versunken.
Mein Vorhaben:
Habe in einem Ordner csv Dateien wo immer wieder neue hinzukommen, diese csv Dateien sind immer gleich aufgebaut.
Das Einlesen der csv Dateien habe ich Power Query noch geschafft.
Nun kommt mein Problem.
Wie muss ich vorgehen bzw. was muss ich machen um das einlesen dynamisch zu machen und auch die Spalte "Zahl" immer wieder anzufügen?
Sind in der neuen csv in der Spalte Name neue Namen sollen diese auch ergänzt werden.
Aus der csv Datei soll nur die Spalte Zahl angefügt werden.
Als Anlage habe ich Test csv Dateien und auch mein Wunschergbnis beigefügt.
Würde mich sehr freuen wenn jemanden mir helfen könnte.
https://www.herber.de/bbs/user/154630.zip

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachgefragt
13.08.2022 20:11:16
Yal
Hallo Jan,
verstehe ich richtig: handelt es sich darum, dass wenn eine zusätzliche noch nicht bekannte Spalte in dem CSV auftaucht, diese inkl. Name erkannt wird?
Das wesentliche Problem wird durch den Schritt "geänderter Typ" verursacht, weil diese eine feste Anzahl an Spalten voraussetzt. Ebenfalls müsste vor jeglicher weiterer Verarbeitung alle "bewegliche" Spalten mit "andere Spalten entpivioieren" den Stand zu einem festen Zahl an Spalten bringen.
Variable Anzahl an Spalten ist eine der Schwachstelle von Power Query.
VG
Yal
AW: Nachgefragt
13.08.2022 20:55:07
Jan
Hallo Yal
Danke erst mal für die sehr schnelle Rückmeldung.
Ich habe mein Problem sehr schlecht dargestellt, sorry tut mir sehr Leid.
Die relevanten Spalten sind immer nur Spalte "Name" und Spalte "Zahl", alle anderen Spalten in den csv Dateien brauchen nicht beachtet werden.
Neues Beispiel:
Füge ich jetzt Mappe 3 als csv in den Ordner "Neuer Ordner" hinzu, soll aus der Spalte Zahl die Zahlen mit den Namen verglichen werden und entsprechend in der nächsten Spalte als Spalte "Zahl/3" angefügt werden, fehlt ein Name in der Namen Spalte soll er angehängt werden.
Hoffe nun ist es etwas verständlicher, falls nicht bitte nachfragen.
Anzeige
AW: Nachgefragt
15.08.2022 09:22:31
Luschi
Hallo Jan,
hier mal mein Lösungsvorschlag: https://www.herber.de/bbs/user/154650.zip
- kopiere die zip-Datei in einen leeren Unterordner und entpacke sie dort
- starte die Wunsch_A1.xlsx
- aktiviere das Tabellenblatt 'Parameter und drücke die F9-Taste
- damit wird der Pfad in Zelle 'B3' neu berechnet (ist 1 Formel)
- aktiviere das Register 'Daten' - den Rest solltest Du kennen
- im PQ-Editor die Abfrage 'CSV-Dateien' auswählen
Gruß von Luschi
aus klein-Paris
Warnung: dieser M-Code hat viel mit PQ-Programmierkenntnisse zu tun und viele Schritte sind so nicht per PQ-Menü-Klick-Klack zu realisieren - aber das Ergebnis ist wohl stimmig.
Ich teste jetzt noch, was passiert, wenn weitere Zahlenwerte zu den Personen dazukommen bzw. weitere Personen in anderen CsV-Dateien auftauchen.
Anzeige
AW: Nachgefragt
15.08.2022 20:28:03
Jan
Hallo Luschi
Vielen vielen lieben Dank für deine Datei, da hast du mir einiges zum knabern gegeben, bis ich das ganze im Detail alles durch gegangen bin um die ganzen Schritte einigermaßen nach vollziehen kann wird eine Zeit brauchen.
Habe jetzt einmal zwei ganz kurze Kopien gemacht, bis auf eine ganz kleinigkeit die mir bis jetzt auf gefallen ist läuft alles so wie ich es mir gewünscht habe, super.
Hast du vielleicht eine Idee wie man das noch abändern könnte
zb: Sam 54
diese Zahl steht in der falschen Spalte, richtig wäre hier in Spalte "Zahl-2".
Die Zahlen müssen zwingend in gleicher Spalte bleiben.
Wenn diesen kleinigkeit noch abzuschaffen ginge, dann wäre die Datei nach bisherigen Test noch mehr als perfekt.
Nochmals vielen vielen lieben Dank für deine super tolle Arbeit.
Anzeige
AW: Nachgefragt
16.08.2022 17:38:20
Luschi
Hallo Jan,
hier eine neue PQ-Version mit der Unterscheidung, ob die Zahlenwerte aus der 1. oder aus der 2. csv-Datei kommen, Zwar noch nicht ganz optimal, aber man kann jetzt damit testen.
https://www.herber.de/bbs/user/154677.zip
Gruß von Luschi
aus klein-Paris
PS: noch 1 Hinweis - Ich habe nur die 2 Abfragen 'tab_Pfad' und 'CSV-Datreien' erstellt - die restlichen Abfragen einschließlich der Funktion 'Datei transformieren' erstellt PQ selbst, wenn man eine neue PQ-Abfrage mit der Optionsauswahl "Aus Datei - Aus Ordner' wählt.
Anzeige
AW: Nachgefragt
18.08.2022 12:27:31
Jan
Hallo Luschi
Sorry für die Rückmeldung.
Habe mir auch diese Lösung angeschaut, auch hier hast du tolle neue Möglichkeiten eingebaut die ich nicht kenne.
Das heißt für mich noch mehr lernen wie man soetwas programmiert.
Ich möchte dich als großer PQ Meister hier tadelen ganz im gegenteil loben muss man dich.
Frage:
Wäre hier nicht ein pivotieren besser als gruppieren?
Oder wird das Pivotieren bei vielen csv Dateien zu langsam?
AW: noch 1 verbesserte PQ-Variante
18.08.2022 16:29:14
Luschi
Hallo Jan,
ob Deine Hauptforderung - die Wertungspunkte in der Spalte erscheinen zu lassen, die der 1., 2. 3. usw. CSV-Datei entspricht - mit viel Umweg auch mit Pivotieren/Entpivotieren zu erreichen ist - kann ich Dir nicht sagen. Mein Thema sind die breiten Möglichkeiten der M-Sprache. Dazu gehöhrt auch das Verändern von Spaltenwerten in der gleichen Spalte und nicht das Anlegen neuer Spalten, die man dann sicher auch wieder entfernen muß.
Hier 1 neue Variante, in der es jetzt möglich ist, bis zu 5 CSV-Dateien im Ordner einzulesen und die richtige Zuordnung der Zahlen zur richtigen Spalte zu organisieren. Die jetzt gefundene Lösung ist sehr einfach auf 10, 20 und noch mehr CSV-Dateien anzupassen, ohne groß im M-Code umrühren zu müssen. dieser PQ-Schritt:

    csv_5 = if #"Anzahl CSV-Dateien" = 5
then Table.FromList(#"Liste aller CSV-Einträge"[Liste]{4}, null, {"csv_5"})
else  #table({"csv_5"}, {}),
ist sehr leicht erweiterbar.
https://www.herber.de/bbs/user/154713.zip
Gruß von Luschi
aus klein-Paris
Anzeige
AW: noch 1 verbesserte PQ-Variante
18.08.2022 18:32:55
Jan
Hallo Luschi
Wie machst du diese zaubertricks, auch diese Lösung eine super tolle.
Einen Schritt musste ich hinzufügen, die Zahlen in "Ganzzahlen" formatieren sonst bleibt die Tabelle leer obwohl sie im Editor zusehen waren.
Werde jetzt weitere Tests durchführen und den M- Code mir unter die Lupe zunehmen.
Nochmals vielen lieben Dank.
AW: Nachfrage
18.08.2022 20:10:14
Jan
Hallo Luschi
In deiner letzten Datei hast du wirklich Dinge eingebaut die mir sehr sehr gut gefallen, zum mit kopfschmerzen für sie in die Originaldatei ein zuarbeiten.
Frage1:
In Beispeildatei transformieren ist eine Zeile:
Quelle = Csv.Document(Parameter1,[Delimiter=";", Columns=7, Encoding=65001, QuoteStyle=QuoteStyle.None])
Wenn ich aus der 7 eine 3 mache werden die Restlichen Spalten nicht angezeigt, was mir sogefällt.
Aber wie muss ich die Zeile ändern das nur Spalte Name und Zahl angezeigt werden?
Die erste Spalte "Spalte5" müsste irgendwie auch weg sein.
Zweite Frage:
Wenn ich nun 50 csv Dateien habe zum einlesen, muss ich den Code in "fx Kontrolle" nur entsprehend erweitern.
Sehe ich das richtig?
Anzeige
AW: Nachfrage
19.08.2022 08:06:53
Luschi
Hallo Jan,
ob man beim Einlesen von CSV-Dateien nur ausgewählte Spalten bestimmen kann, weiß ich nicht. Inzwischen habe ich durch ein paar klitzekleine Änderungen gemerkt, daß PQ-Zeilen dieser Art:
csv_1 = Table.FromList(#"Liste aller CSV-Einträge"[Liste]{0}, null, {"csv_1"}),
csv_2 = Table.FromList(#"Liste aller CSV-Einträge"[Liste]{1}, null, {"csv_2"}),
usw. nicht mehr erforderlich sind. Weitere Fragen Deinerseits zu einzelnen PQ-Schritten sind natürlich weiter möglich.
Hier noch mal mein bisheriger Stand: https://www.herber.de/bbs/user/154721.txt
In der Funktion 'fx_Kontrolle' habe ich die Veränderungen für bis zu 50 CSV-Dateien
vervollständigt: https://www.herber.de/bbs/user/154722.txt
Bin gespannt auf Deine Testergebnisse.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Nachfrage
21.08.2022 11:33:17
Jan
Hallo Luschi
Erstmal nochmals vielen lieben Dank für deine super tolle Hilfe.
Habe nun zwischenzeitlich mehrere Test durchgeführt und richtige Ergebnisse, nur wenn ich nachfolgende Zeile immer ändere, da es mal weniger oder mehr csv Dateien sind.
Hier ein Beispiel für sieben csv Dateien:
= Table.TransformColumnTypes(#"Daten bereinigen",{{"Zahl_1", Int64.Type}, {"Zahl_2", Int64.Type}, {"Zahl_3", Int64.Type}, {"Zahl_4", Int64.Type}, {"Zahl_5", Int64.Type}, {"Zahl_6", Int64.Type}, {"Zahl_7", Int64.Type}})
Wie kann ich diese Zeile dynamisch abändern, dann wäre es perfekt?

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige