Microsoft Excel

Herbers Excel/VBA-Archiv

PowerQuery Zeile Quelle Nummer

Betrifft: PowerQuery Zeile Quelle Nummer von: Berny
Geschrieben am: 02.09.2020 13:41:18

Hallo,


ich bin blutiger Anfänger in Power Query.

Ich habe eine Query über einen Ordner erstellt. Irgendwie habe ich ich auch eine Spalte "Source.Name" bekommen.

Jetzt möchte ich mir ein Modul schreiben, mit dem ich bei Bedarf die Quellen - Datei öffne und die Spalte und Zeile in der Quelle auswählen.

Die Quelle und Spalten Nr. habe ich, was mir fehlt ist die Zeilennummer. Ich habe gesehen, dass es die Möglichkeit gibt, Eine Index - Spalte einzufügen. Gibt es eine Möglichkeit, den Index für jede Quelle von vorne zu beginnen (= Zeilennummer).


M.f.G.

Berny

Betrifft: AW: PowerQuery Zeile Quelle Nummer
von: ChrisL
Geschrieben am: 02.09.2020 16:47:39

Hi Berny

Hier ein Beispiel:
https://www.herber.de/bbs/user/140000.xlsx

Die Lösung habe ich hier entnommen und erfordert einen manuellen Eingriff im Editor:
https://social.technet.microsoft.com/Forums/en-US/e5a98a17-115e-4759-8636-46e6db76b87b/index-starting-with-1-for-each-category-in-power-query?forum=powerquery

Die Ausgangslage versteht sich beispielhaft d.h. die Ordnerabfrage ist im Anhang nicht enthalten und die Quellen sind nur fiktiv (manuelle Texteingaben).

cu
Chris

Betrifft: AW: PowerQuery Zeile Quelle Nummer
von: Berny
Geschrieben am: 03.09.2020 09:49:16

Hallo Chris,
vielen Dank für deinen Beitrag. Leider schaffe ich es nicht in deinem Bsp. zu sehen, wo du den Code eingegeben hast. Deshalb habe ich mir den Link angeschaut, den du mir angehängt hast.
Leider bekomme ich hier "Error" in der Spalte angezeigt.
Meine Vorgehensweise: Nach der Quelle habe ich eine Index - Spalte eingefügt. (Beginn mit 1)
Nach dem Erweitern, so dass ich die Tabellen aneinander hängend sehe, habe ich eine weitere benutzerdefinierte Spalte eingefügt. Nun habe ich den Code aus dem Bsp. in den Editor für die benutzerdefinierte Spalte kopiert und aus "Category" (aus dem Bsp.) mit meiner Spaltenbezeichnung "Source.Name" ersetzt.

let
Source = ...,
#"Grouped Rows" = Table.Group(Source, {"[Source.Name]"}, {{"Rows", each Table.AddIndexColumn(_, "Index", 1), type table}}),
#"Expanded Rows" = Table.ExpandTableColumn(#"Grouped Rows", "Rows", {"[Source.Name]", "Index"}, {"Rows.[Source.Name]", "Rows.Index"})
in
#"Expanded Rows"

Ist das der richtige Weg?
Was könnte der Fehler sein?

M.f.G.

Berny

Betrifft: AW: PowerQuery Zeile Quelle Nummer
von: ChrisL
Geschrieben am: 03.09.2020 11:36:44

Hi

Entferne mal die eckigen Klammern. Ansonsten bitte eine Musterdatei laden.

Mein Code ist im Editor zu finden:


cu
Chris

Betrifft: AW: PowerQuery Zeile Quelle Nummer
von: Berny
Geschrieben am: 03.09.2020 15:46:55

Hallo Chris,

ich glaube ich stelle mich gerade selten dämlich an. Ich versuche es jetzt schon seit stunden. Ich bekomme das nicht gebacken.
Da meine Originalabfrage 56 Dateien und sensible daten beinhaltet, habe ich mir einen Dummy Ordner mit 3 einfachen Mappen angelegt. Diese versuche ich nun als Ordner abzufragen.
Das hieraus entstehende Bsp. habe ich jetzt angehängt.
Kannst du bitte einmal darauf schauen.

https://www.herber.de/bbs/user/140023.xlsx

Da ich das Bsp. nicht mit Fehler speichern kann, hier mein fehlerhafter Code.
let
Quelle = Folder.Files("C:\Temp\Query\TestOrdner"),
#"Grouped Rows" = Table.Group(Quelle, {"Quelle"}, {{"Rows", each Table.AddIndexColumn(_, "Index", 1), type table}}),
#"Erweiterte Rows1" = Table.ExpandTableColumn(#"Grouped Rows", "Rows", {"Name", "Index"}, {"Name", "Index"})
in
#"Erweiterte Rows1"

M.f.G.

Berny

Betrifft: AW: PowerQuery Zeile Quelle Nummer
von: ChrisL
Geschrieben am: 03.09.2020 17:32:14

Hi Berny

Im deinem Anhang konnte ich nur die Dateiliste sehen. Die Indexierung müsste m.E. erfolgen nachdem Daten aus den Files entnommen wurden (Spalte "Content", Dateien kombinieren).

In meinem Beispiel habe ich in den Testfiles jeweils Spalte A der Tabelle1 mit Dummy-Daten (ohne Titel gefüllt) gefüllt. Das Datenfeld wird automatisch als Column1 bezeichnet.

let
Quelle = Folder.Files("C:\temp\Query\TestOrdner"),
#"Gefilterte ausgeblendete Dateien1" = Table.SelectRows(Quelle, each [Attributes]?[Hidden]? <> true),
#"Benutzerdefinierte Funktion aufrufen1" = Table.AddColumn(#"Gefilterte ausgeblendete Dateien1", "Datei aus TestOrdner transformieren", each #"Datei aus TestOrdner transformieren"([Content])),
#"Umbenannte Spalten1" = Table.RenameColumns(#"Benutzerdefinierte Funktion aufrufen1", {"Name", "Source.Name"}),
#"Andere entfernte Spalten1" = Table.SelectColumns(#"Umbenannte Spalten1", {"Source.Name", "Datei aus TestOrdner transformieren"}),
#"Erweiterte Tabellenspalte1" = Table.ExpandTableColumn(#"Andere entfernte Spalten1", "Datei aus TestOrdner transformieren", Table.ColumnNames(#"Datei aus TestOrdner transformieren"(Beispieldatei))),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Erweiterte Tabellenspalte1",{{"Source.Name", type text}, {"Column1", type text}}),
#"Gruppierte Zeilen" = Table.Group(#"Geänderter Typ", {"Source.Name"}, {{"MeineZeilen", each Table.AddIndexColumn(_, "Index", 1), type table}}),
#"Erweiterte MeineZeilen" = Table.ExpandTableColumn(#"Gruppierte Zeilen", "MeineZeilen", {"Column1", "Index"}, {"MeineZeilen.Column1", "MeineZeilen.Index"})
in
#"Erweiterte MeineZeilen"


https://www.herber.de/bbs/user/140025.xlsx

cu
Chris

Betrifft: AW: PowerQuery Zeile Quelle Nummer
von: Berny
Geschrieben am: 04.09.2020 08:10:02

Hallo Chris,

du bist der Wahnsinn! Super! Ich habe zwar die Programmsprache immer noch nicht verstanden, aber du hast nicht nur mein Problem gelöst, sondern auch Ordnung in die Struktur gebracht. Jetzt verstehe ich wenigstens was in welchem Schritt passiert. Das ist eine gute Ausgangslage.
Jetzt muss ich es "nur" noch in meine Abfrage einarbeiten :-).

Vielen herzlichen D A N K und ein schönes Wochenende.

M.f.G.

Berny

Beiträge aus dem Excel-Forum zum Thema "PowerQuery Zeile Quelle Nummer"