Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PowerQuery Zeile Quelle Nummer

Forumthread: PowerQuery Zeile Quelle Nummer

PowerQuery Zeile Quelle Nummer
02.09.2020 13:41:18
Berny
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
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PowerQuery Zeile Quelle Nummer
02.09.2020 16:47:39
ChrisL
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
Anzeige
AW: PowerQuery Zeile Quelle Nummer
03.09.2020 09:49:16
Berny
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
Anzeige
AW: PowerQuery Zeile Quelle Nummer
03.09.2020 11:36:44
ChrisL
Hi
Entferne mal die eckigen Klammern. Ansonsten bitte eine Musterdatei laden.
Mein Code ist im Editor zu finden:
Userbild
cu
Chris
AW: PowerQuery Zeile Quelle Nummer
03.09.2020 15:46:55
Berny
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
Anzeige
AW: PowerQuery Zeile Quelle Nummer
03.09.2020 17:32:14
ChrisL
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
Anzeige
AW: PowerQuery Zeile Quelle Nummer
04.09.2020 08:10:02
Berny
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
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Power Query: Zeilennummern für Quellen erstellen


Schritt-für-Schritt-Anleitung

  1. Öffne Power Query: Starte Excel und gehe zu „Daten“ > „Abfragen und Verbindungen“ > „Abfrage bearbeiten“, um den Power Query Editor zu öffnen.

  2. Datenquelle einfügen: Wähle „Ordner“ als Quelle aus und gebe den Pfad zu deinem Ordner an, der die Daten enthält.

  3. Index-Spalte hinzufügen:

    • Klicke auf „Hinzufügen“ > „Indexspalte“ > „Von 1“.
    • Dies fügt eine Indexspalte hinzu, die bei 1 beginnt.
  4. Gruppierung der Daten:

    • Wähle „Start“ > „Gruppieren nach“.
    • Wähle die Spalte „Source.Name“ aus, um die Daten nach den Quellen zu gruppieren.
  5. Zeilen mit Zeilennummer erweitern:

    • Innerhalb des Gruppierungsfensters, wähle „Erweiterte Tabellenspalte“ aus.
    • Verwende den Befehl Table.AddIndexColumn in einer benutzerdefinierten Spalte, um eine neue Indexspalte für jede Quelle zu generieren.

    Beispiel für den M-Code:

    #"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"})
  6. Daten in Excel laden: Klicke auf „Schließen & Laden“, um die bearbeiteten Daten zurück in Excel zu übertragen.


Häufige Fehler und Lösungen

  • Fehler bei der Spaltenauswahl: Wenn du „Error“ in einer Spalte siehst, überprüfe, ob du die eckigen Klammern um Spaltennamen entfernt hast.
  • Indexierung nach dem Laden: Achte darauf, dass die Indexierung erst nach der Datenextraktion aus den Dateien erfolgt.
  • Leere oder nicht lesbare Dateien: Stelle sicher, dass die Dateien im Ordner lesbare Daten enthalten und nicht leer sind.

Alternative Methoden

  • Verwendung von benutzerdefinierten Funktionen: Erstelle benutzerdefinierte Funktionen in Power Query, um spezifische Transformationen durchzuführen, die nicht standardmäßig verfügbar sind.
  • Pivot-Tabellen: Nach dem Laden der Daten in Excel kannst du auch Pivot-Tabellen verwenden, um die Daten nach verschiedenen Kriterien zu analysieren.

Praktische Beispiele

  1. Daten aus mehreren Excel-Dateien: Wenn du Daten aus mehreren Excel-Dateien abrufst, stelle sicher, dass die Struktur der Quelldateien identisch ist, um die Table.ExpandTableColumn Funktion optimal nutzen zu können.

  2. Index bei kategorischen Daten: Wenn du Daten nach Kategorien gruppierst, kann es hilfreich sein, für jede Kategorie eine separate Indexspalte zu erstellen, um die Zeilennummern klar zu verfolgen.


Tipps für Profis

  • Verwende power query each true: Nutze diesen Befehl, um für jede Zeile in einer Abfrage spezifische Bedingungen zu definieren und die Abfrage zu optimieren.
  • Verwalte die Abfragen: Halte deine Abfragen klar strukturiert und dokumentiere jeden Schritt, um die Nachvollziehbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Zeilennummern für verschiedene Quelldateien zurücksetzen? Du kannst die Indexspalte in jeder gruppierten Abfrage zurücksetzen, indem du Table.AddIndexColumn für jede Quelle verwendest.

2. Was mache ich, wenn ich immer noch Fehler in der Abfrage habe? Überprüfe die Struktur deiner Quelldaten und stelle sicher, dass alle Spalten korrekt benannt und formatiert sind. Es kann auch hilfreich sein, die Abfrage Schritt für Schritt zu durchlaufen, um den Fehler zu identifizieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige