PQ: Leerzeilen in existierende Liste einfügen (low level)

Xtract: In eine gegebene Liste/Tabelle/Aufstellung sollen nach jed­er ursprünglichen Zeile 3 Leerzeilen einge­fügt wer­den. Das soll auss­chließlich per Pow­er Query erfol­gen.

  Wis­sens­stand: Lev­el 1 ⇒ Ein­steiger in PQ, keine/kaum Erfahrung   

Gegeben ist eine Liste mit Tex­ten (hier: Obst­sorten), welche in einem neuen Tabel­len­blatt mit jew­eils 3 anzufü­gen­den Leerzeilen gespe­ichert wer­den soll. Sie kön­nen die hier als Screen­shot gezeigte kleine Liste sel­ber in ein leeres Arbeits­blatt schreiben (wie in der Abil­dung gezeigt) oder als Text­datei (Obstsorten.txt) hier von unserem Serv­er herun­ter­laden. Diese Auf­gaben­stel­lung habe ich übri­gens in einem Excel-Forum gele­sen und nach meinem Dafürhal­ten etwas mod­i­fiziert. 😎 

Die in ein Arbeits­blatt einge­tra­ge­nen Werte

Zugegeben, es gibt auch andere, vielle­icht „pro­fes­sionellere“ Wege, inner­halb Pow­er Query das gewün­schte Ziel zu erre­ichen. Und natür­lich gelan­gen Sie auch per VBA bzw. mit ein­er Formel-Lösung zum Ziel. Aber hier geht es nun ein­mal um Pow­er Query und mein Anliegen ist es, auch für Nicht-Profis einen möglichst gut nachvol­lziehbaren Weg anzu­bi­eten.

Der derzeit­ige Stand ist, dass Sie die kleine Liste mit den Obst­sorten wie in der Abbil­dung gezeigt in ein Arbeits­blatt einge­tra­gen oder die Text­datei entsprechend in einem Edi­tor kom­plett kopiert und dann in ein Tabel­len­blatt einge­fügt haben. Alter­na­tiv kön­nen Sie natür­lich bei entsprechen­dem Wis­sen­stand die Text­datei direkt in Pow­er Query importieren. In dem Fall ent­fällt der erste Schritt des fol­gen­den Absatzes (der Import in PQ).

Die Dat­en liegen als Text vor und begin­nen beispiel­sweise in Zelle A1 und enden hier in A12. Und Sie erken­nen auch, dass die erste Zeile (A1) eine Über­schrift sein soll und nicht zu den eigentlichen Dat­en gehört. Markieren Sie irgen­deine Zelle im Bere­ich A1:A12 und importieren Sie über Dat­en | Aus Tabelle/Bereich die Liste. Acht­en Sie darauf, dass Sie das Häkchen bei Tabelle hat Über­schriften geset­zt ist:

Import in den PQ-Edi­tor

Nach einem OK hat sich der Pow­er Query-Edi­tor geöffnet und die Dat­en sind hierin importiert wor­den. Die ober­ste Zeile der tabel­lar­ischen Ansicht (ohne die Num­merierung links der Dat­en) muss die Über­schrift Obst­sorten enthal­ten. Falls das nicht der Fall ist, Klick­en Sie im Menüband auf Erste Zeile als Über­schriften ver­wen­den. Damit ist der Import der Dat­en kom­plett erledigt Und Sie kön­nen sich den weit­eren Schrit­ten wid­men.

Ich sel­ber lege Wert darauf, auf die Orig­i­nal-Dat­en jed­erzeit zugreifen zu kön­nen. So bin ich vor unan­genehmen Über­raschun­gen weit­ge­hend geschützt. Bei Bedarf kann (und werde) ich diese zu Beginn erstellte Abfrage am Schluss löschen. Sofern das linke Seit­en­fen­ster mit den Abfra­gen noch nicht sicht­bar ist, blende ich es über diesen Weg ein. Recht­sklick auf den (noch) einzi­gen Ein­trag Tabelle1 und wählen Sie dann den Ein­trag Duplizieren. Alter­na­tiv geht das auch über Start | Ver­wal­ten | Duplizieren. PQ hat für Sie nun automa­tisch die Abfrage Tabelle1 (2) erstellt und dieses ist nun auch ihre Arbeit­skopie. Um dieser Abfrage einen „sprechen­den“ Namen zu geben, markiere ich diesen Ein­trag, F2 und benenne diese Query zu Obst­sorten um.

Reg­is­ter Spalte hinzufü­gen | Indexs­palte ▼ erweit­ern und im Drop­down anschließend Benutzerdefiniert… wählen. Tra­gen Sie bei Startin­dex die Zahl 0 und bei Schrit­tweite die Zahl 4 ein. In der neuen Spalte Index hat Pow­er Query nun die Zif­fern 0, 4, 8, einge­tra­gen. Sie erken­nen, dass jew­eils 3 Zahlen in der fort­laufend­en Rei­hen­folge fehlen. Und genau dieses sollen die jew­eils 3 geforderten Leerzeilen wer­den.

Um das zu erre­ichen, müssen Sie sich eine neue, leere Abfrage erstellen. Wech­seln Sie dazu wieder zum Reg­is­ter Start | Neue Quelle | Andere Quellen | Leere Abfrage. Im linken Seit­en­fen­ster erken­nen Sie den neuen Ein­trag Abfrage1, welche als Sym­bol links des Query-Namens ABC hat. Der Cur­sor blinkt in der lan­gen, einzeili­gen leeren Eingabezeile. Geben Sie dort diese Formel, begin­nend mit dem Gle­ich­heit­sze­ichen ein: = {0..43}. Die Klam­mern sind übri­gens geschweifte Klam­mern, nicht die run­den. PQ wird sofort eine Liste / Tabelle mit den Zif­fern 0 bis 43 gener­ieren, als Über­schrift ste­ht dort Liste. Und das Sym­bol dieser Query hat sich auch verän­dert, es ist nun so eine Art einspaltige Tabelle.

Ich bin Ihnen gewiss eine Erk­lärung schuldig, wieso, warum, weshalb, … In der Eingabe-bzw. Befehlszeile wird durch die geschweiften Klam­mern eine Liste erzeugt. Der numerische Startwert ist 0, die bei­den Punk­te ste­hen für die Anweisung, dass eine logis­che Rei­hen­folge in ein­er Schrit­tweite 1 bis zum Endw­ert (hier: 43) gener­iert wer­den soll. Es bleibt vielle­icht die Frage, warum der Endw­ert 43 ist. Wenn Sie in der Query Obst­sorten nach­se­hen wer­den Sie erken­nen, dass der Index der unter­sten Zeile 40 ist. Und da dort nach dieser Zelle noch 3 Leerzeilen einge­fügt wer­den sollen, ergibt das als höch­ste Zeilen­zahl 43. Bei diesen weni­gen Ein­trä­gen ist das ja noch einiger­maßen über­sichtlich und sie kön­nen rasch nach­schauen, welch­es der höch­ste Index war. Weit­er unten zeige ich Ihnen einen Weg auf, wie Pow­er Query eigen­ständig den Ziel-Wert berech­net und auch ver­w­erten kann.

Solch eine PQ-Liste ist eine Son­der­form ein­er Abfrage. Für die weit­ere Ver­ar­beitung brauchen Sie eine „nor­male“ Query; dazu Klick­en Sie in dieser wenige Ele­mente enthal­tenden Sym­bol­leiste ganz links auf das Rib­bon Zu Tabelle. Den Dia­log kön­nen Sie direkt mit OK bestäti­gen und dadurch schließen. Im linken Seit­en­fen­ster erken­nen Sie nun, dass dieser let­zte Ein­trag umbe­nan­nt wor­den ist zu Abfrage1 und das Sym­bol links des Namens ein­er Tabelle entspricht. Über Start | Abfra­gen zusam­men­führen öffnet sich das Dialogfen­ster Zusam­men­führen. Klick­en Sie hier in die einzeilige Textzeile und wählen Sie im Dia­log den Ein­trag Obst­sorten. Umge­hend wird sich im unteren der bei­den größeren Daten­bere­iche der obere Teil der Query Obst­sorten ein­blenden:

So führen Sie die bei­den Abfra­gen zusam­men (erste Schritte)

Klick­en Sie hier im oberen Kas­ten irgend­wo in die Spalte Column1 und im unteren Kas­ten irgend­wo in die Spalte Index. Diese bei­den Spal­ten sind nun markiert. Die Auswahl Join-Art kann so bleiben, also ein Klick auf OK. PQ hat in dieser Abfrage eine neue Col­umn mit dem Namen Obst­sorten angelegt und jed­er einzelne Zeile enthält den Ein­trag Table. Erweit­ern Sie diese Spalte durch einen Klick in den Dop­pelpfeil Doppelpfeil der Über­schrift und sor­gen Sie dafür, dass auss­chließlich bei Obst­sorten das Häkchen beste­hen bleibt:

Nur 1 Kästchen bleibt markiert

Die Über­schrift dieser Spalte ist jet­zt Obstsorten.1 und Sie erken­nen, dass nun auss­er den einzel­nen Obst­sorten auch eine ganze Menge Leerzeilen enthal­ten sind. Nur die angestrebte Lösung mit 1 Zeile Text und dann 3 Zeilen leer stimmt noch nicht. 🙁 Die Ursache wer­den Sie aber rasch erken­nen, wenn Sie sich erin­nern, was eigentlich in Column1 ste­ht; es ist der Index gewe­sen. Und der sollte doch… 😉

Sortieren Sie die Spalte Column1 auf­steigend und siehe da, das Wun­schergeb­nis ist erre­icht. Nun kön­nen Sie diese erste Spalte auch ent­fer­nen, sie hat ihren Dienst getan. Schließen & laden oder Schließen & laden in… und die Auf­gabe ist erfüllt.

▲ nach oben …

Ich hat­te Ihnen weit­er oben ver­sprochen, dass es auch eine Lösung für fort­geschrit­tenere oder inter­essierte Anwen­der gibt. Okay, „here we go…” – Wenn Sie schon etwas erfahren­er in PQ sind oder tiefer in die Materie ein­steigen wollen, dann kön­nen Sie die Berech­nung des numerischen Werts der let­zten Zeile auch durch Pow­er Query vornehmen lassen. Die ersten Schritte sind genau so wie gehabt. Sie sind also in der duplizierten Tabelle und haben die Indexs­palte mit der 4er-Schrit­tweite einge­fügt. Ein Klick auf die Über­schrift Index und sie wählen im Kon­textmenü wie gehabt den unter­sten Punkt der Auflis­tung: Als neue Abfrage hinzufü­gen.

Wie auch schon im vorheri­gen Kapi­tel hat Pow­er Query eine neue Abfrage, eine Liste mit dem Namen Index erstellt. Ab hier ist die Vorge­hensweise anders. Klick­en Sie in dem Menüband auf Sta­tis­tiken und im Drop­down wählen Sie Max­i­mum. Sie erken­nen, dass sich das Sym­bol im linken Seit­en­fen­ster geän­dert hat. Und Sie sehen im Haupt­teil des Fen­sters keine Liste mehr son­dern nur das Ergeb­nis dieser Funk­tion, näm­lich 40. Die Liste enthielt (und enthält auch noch) 40 Ele­mente bzw. Zeilen.

Sie kön­nen sich nun entschei­den, ob sie an dieser Stelle oder später in der Auswer­tung noch die 3 (Leerzeilen) hinzufü­gen wollen. Ich entschei­de mich meist dafür, dass so früh wie möglich abzuar­beit­en. Also klicke ich direkt in die Eingabezeile mit der Formel und ändere sie so, dass der Wert 3 addiert wird: = List.Max(Index1)+3. Wenn Sie anschließend irgend­wo in den Ergeb­nis-Bere­ich Klick­en wer­den Sie sofort die kor­rigierte Berech­nung (43) erken­nen. Der Deut­lichkeit und besseren Ver­ständlichkeit wegen ändere ich nun noch den Namen der Abfrage/Liste von Index auf MaxW­ert.

Ich gehe jet­zt und in diesem Fall von der Annahme aus, dass Sie noch keine leere Abfrage mit der Zahlen­folge 0 bis 43 erstellt haben. Darum wie bere­its beschrieben der Weg über Start | Neue Quelle | Andere Quellen | Leere Abfrage. In die Eingabezeile für die Funk­tion geben Sie nun fol­gende Formel ein: = {0..MaxWert} und nach einem Klick in den Freiraum oder auf das Häkchen-Sym­bol links des Eingabefeldes wird ruck­zuck die Liste von 0 bis zum berech­neten Endw­ert (der ja in der Liste MaxW­ert errech­net wor­den ist) erstellt.

Der riesige Vorteil dieser Vorge­hensweise ist, dass diese Liste dynamisch ist, sprich sie wird automa­tisch auf die Anzahl der Ein­träge in der Ursprungsta­belle angepasst. Die einzige Änderung, welche Sie eventuell vornehmen müssen ist, die Anzahl der einzufü­gen­den Leerzeilen anzu­passen. Und selb­st die kön­nten Sie im Excel-Arbeits­blatt in ein­er Zelle hin­ter­legen und durch PQ auswerten lassen. Und dass diese Vorge­hensweise viel angenehmer ist, wenn es hun­derte von Ein­trä­gen in der Quell­datei sind, das ver­ste­ht sich von alleine. 😎 Diese Liste wer­den Sie anschließend auf dem bekan­nten Weg über Zu Tabelle entsprechend umwan­deln und anschließend als Basis für das Zusam­men­führen ver­wen­den.

Dieser Vor­gang ist dann wieder genau wie weit­er oben beschriebe­nen. Es bleibt eigentlich nur noch der Schritt, die ursprüngliche, erste erstellte Query (Tabelle1) zu löschen. In diesem Fall haben Sie diese nicht gebraucht, aber wenn es nicht hun­dert­tausende von Daten­sätzen sind, ist das auch keine Bremse. Wenn Sie im Umgang mit Pow­er Query sicher­er sind wer­den Sie auch auf das Dup­likat am Beginn ein­er Ses­sion verzicht­en und dieses bei Bedarf aus der existieren­den Abfrage erstellen.

 BTW: Mer­ry Christ­mas! 💡 💡 💡  (released @ 12/25/2021)

▲ nach oben …

Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?

Dann würde ich mich über einen Beitrag Ihrer­seits z.B. 2,00  freuen … (← Klick mich!)

 
Dieser Beitrag wurde unter a) Keine Vorkenntnisse, b) Kaum Vorkenntnisse, Daten zusammenführen, Join-Art, Ohne Makro/VBA, Power Query, PQ für Einsteiger, PQ-Formeln (Sprache M), Text-Behandlung, {Liste} abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.