Gruppenerste Zeile markieren

Beim ersten Auftreten eines Wertes eine 1 in neue Spalte

Hier in diesem Forum wurde eine Frage gestellt, die inhaltlich zusam­menge­fasst fol­gen­des bein­hal­tet: Eine Excel Daten­samm­lung umfasst knapp 100.000 Daten­sätze mit unter­schiedlichen Werten. In der ersten Spalte sind numerische Grup­pen-Beze­ich­nun­gen, wo je Gruppe unter­schiedlich viele Werte untere­inan­der ste­hen. Diese numerischen Werte sind zusam­menge­fasst, was die Ziel­er­fül­lung etwas erle­ichtert.

Der Wun­sch des Beitrag-Erstellers: In ein­er neuen Spalte in jew­eils der ersten Zeile des Werte-Blocks soll in diese neu erstellte Spalte die Zahl 1 einge­tra­gen wer­den, son­st soll die Zelle leer bleiben. – Funk­tion­ierende Formel-Lösun­gen wur­den ange­boten, die Per­for­mance ließ aber nach Angabe des Fragestellers sehr zu wün­schen übrig. Darum habe ich eine Lösung mit Pow­er Query erstellt.

Sie kön­nen natür­lich die Datei direkt im Forum herun­ter­laden. Um die große Daten­men­gen auf eine trag­bare Größe zu schrumpfen und auch noch ein wenig „Würze” in den Lösungsweg zu brin­gen, habe ich ein­er­seits fast alle Spal­ten mit den Muster-Lösun­gen ent­fer­nt und die Dat­en als *.csv gespe­ichert. Mein Muster-File kön­nen Sie hier herun­ter­laden.

Begin­nen Sie mit ein­er leeren Excel-Mappe. In Excel 20102013 wer­den Sie das Reg­is­ter Pow­er Query aktivieren, in Excel >=2016 / 365 das Reg­is­ter Dat­en. Je nach Ver­sion erstellen Sie nun eine Neue Abfrage, Aus Datei | Aus csv und Importieren die von mir gener­ierte Datei Erste_Zeile_im_Block_1.csv. Pow­er Query erken­nt die Codierung und das Trennze­ichen kor­rekt:

Der Dialog für den Import der CSV-Datei

Der Dia­log für den Import der csv-Datei

Anschließend ein Klick auf Bear­beit­en, denn nach dem Import soll ja etwas mit den Dat­en geschehen. Aus unter­schiedlichen Grün­den füge ich nun in dieser Abfrage erst ein­mal eine Index-Spalte hinzu. Dafür im Reg­is­ter ein Klick auf Spalte hinzufü­gen | Indexs­palte. Umge­hend wird rechts außen eine neue Spalte mit einem 0‑basierten Index erstellt. Als Über­schrift wir automa­tisch Index vergeben.

Von dieser Abfrage wer­den Sie nun ein Dup­likat erstellen. Hier kön­nen Sie nach­le­sen, wie das mach­bar ist. Ide­al­er­weise wer­den Sie die neu erstellte Abfrage gle­ich umbe­nen­nen, ich gebe ihr den Namen Erste_Zeile_im_Block_1 (gefiltert), da in dieser Query die Blöcke auf je 1 Zeile gefiltert wer­den. Und um das zu erre­ichen, markieren Sie die Spalte Werte und beispiel­sweise einen Recht­sklick in die Über­schrift und im Kon­textmenü  Dup­likate ent­fer­nen auswählen. Wenn Sie sich nun die Spalte Index betra­cht­en, dann erken­nen Sie rasch, dass diverse Zeilen nicht mehr existieren (sie sind nicht aus­ge­blendet).

In diese verbliebe­nen Zeilen soll ja in ein­er neuen Spalte die Zahl 1 einge­tra­gen wer­den, in der voll­ständi­gen Datei sollen alle anderen Zellen leer bleiben. Aktivieren Sie nun das Reg­is­ter Spalte hinzufü­gen und Klick­en dort im Menüband auf Benutzerdefinierte Spalte. Im nun erscheinen­den Dia­log vergeben Sie als Neuer Spal­tenname beispiel­sweise Erster Wert oder was auch immer Sie mögen. In Benutzerdefinierte Spal­tenformel: geben Sie nach dem Gle­ich­heit­sze­ichen nur die Zif­fer 1 ein. Anschließend ein Klick auf OK.

Sie erken­nen, dass in jed­er der (verbliebe­nen) Zeilen die Zif­fer 1 ste­ht. Jet­zt ist es „nur” noch erforder­lich, die bei­den Abfra­gen so zusam­men­zuführen, dass in der Basis-Abfrage in genau diesen Zeilen in ein­er neuen Spalte die 1 erscheint und die restlichen Zeilen leer bleiben. Dazu aktivieren Sie erst ein­mal die ursprüngliche, unge­filterte Abfrage. Danach das Reg­is­ter Start und Kom­binieren | Abfra­gen zusam­men­führen. Es öffnet sich dieser Dia­log:

Der Einstig in das  Zusammenführen der Abfragen

Der Ein­stig in das Zusam­men­führen der Abfra­gen

Nun wählen Sie aus, welch­es die zu verknüpfende Abfrage sein soll:

Die Auswahl der zweiten Abfrage

Die Auswahl der zweit­en Abfrage

Und schlussendlich wer­den Sie die bei­den kor­re­spondieren­den Spal­ten durch einen Klick in die Spalte des jew­eili­gen „Kas­tens” markieren:

Beide Index-Spalten sind markiert

Bei­de Index-Spal­ten sind markiert

Join-Art bleibt so, weil ja alle Zeilen der oberen Abfrage ver­wen­det und aus der unteren die laut Markierung übere­in­stim­menden ver­wen­det wer­den sollen. Jet­zt noch ein Klick auf OK und der Dia­log schließt sich.

Die neue Spalte hat die Über­schrift Erste_Zeile_im_Block_1 (gefiltert). Der Inhalt jed­er einzel­nen Zeile ist Table (Tabelle). Ein Klick auf das Erweit­ern-Sym­bol Doppelpfeil in der Über­schrift und in einem Dia­log wer­den Ihnen alle Felder aufgezeigt, welchen einge­blendet wer­den kön­nen bzw. sollen. Ent­fer­nen Sie das Häkchen bei (Alle Spal­ten auswählen) und auch bei Ursprünglichen Spal­tenna­men als Prä­fix ver­wen­den. Anschließend markieren Sie Erster Wert. Bestäti­gen Sie mit OK und Sie wer­den sehen, dass wenige Zeilen dieser Spalte mit ein­er 1 gefüllt sind und die meis­ten null enthal­ten, also leer sind. Sie erken­nen aber auch, dass die Rei­hen­folge nicht mehr stimmt. Darum sortieren Sie die Spalte Index auf­steigend. Jet­zt nur noch die eben sortierte Spalte löschen und das Ziel ist erre­icht.

Schließen & laden und die bei­den Abfra­gen wer­den in ein neues Arbeits­blatt gespe­ichert. Da Sie die gefilterte Ver­sion der bei­den Abfra­gen nicht angezeigt haben wollen, kön­nen Sie diese Tabelle markieren und löschen. Pro­fes­sioneller wäre es allerd­ings, wenn Sie diese Abfrage als Nur Verbindung spe­ich­ern wür­den und die darzustel­lende Query als Tabelle. Vielle­icht hil­ft Ihnen da dieser Link😎 

▲ nach oben …

Dieser Beitrag wurde unter Allgemein, Verschiedenes, Filtern & Sortieren, Join-Art, Power Query, Spalten bearbeiten abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.