Daten transponieren (Formel ZEILENUMBRUCH)

Angenommen Du erhältst Daten in einer ungünstigen Struktur. Womöglich kennst Du die Funktion "Transponieren", indem Du die Daten markierst, kopierst und mittels "transponieren" einfügst. Dies "dreht" Deinen Bericht von einer Zeilen- zu einer Spaltenansicht (oder vice versa). Siehe hierzu auch diesen Beitrag: Einen Bericht drehen (Spalten zu Zeilen - Transponieren).

Für diesen Beitrag haben wir das untenstehende Datenset, mit zufälligen Adressdaten erhalten:

Daten transponieren - Beispieldaten

Wir können die Daten nicht weiterverwenden und müssen sie zuerst in dedizierte Spalten "Name", "Adresse" und "Telefon" bringen. Welche Lösungsansätze bieten sich uns? Mittels eingangs erwähntem "Transponieren" kommen wir nicht weiter; respektive nur ansatzweise (Eintrag für Eintrag). Ein manueller Übertrag kommt für uns natürlich nicht in Frage. Ein Makro mit einer For Each-Schleife würde funktionieren, es bietet sich jedoch mit einer einzigen Excel-Formel eine Lösung an: Die Formel "=ZEILENUMBRUCH" kann die Daten direkt für uns aufbereiten. Dies ist die Formel-Syntax:

Formel Zeilenumbruch-Syntax

Konkret können wir unsere Daten (die übrigens in den Zellen A1:A45 sind), mit folgender Formel aufbereiten lassen:

=ZEILENUMBRUCH(A1:A45;3)

Der "Vektor" beinhaltet der Bereich, wo unsere Daten aufgeführt sind. Die zweite Angabe, der "wrap_count" definiert, nach wie vielen Einträgen Excel jeweils einen "Zeilenumbruch" einfügen soll, um auf der nächsten Zeile fortzufahren.

Daten transponieren - Result

Die Formel hat eine optionale Angabe "pad_with". Falls Du im Allgemeinen eine grosse Datenmenge zusammenführen möchtest und in der letzten Zeile nicht alle Einträge gefüllt werden, erhältst Du einen "#N/V"-Fehler. Mit der "pad_with"-Angabe kannst Du einen Wert dafür definieren (z.B. "NULL", "LEER", etc.).

Anstelle von "ZEILENUMBRUCH" könntest Du je nach Anwendungsfall auch "SPALTENUMBRUCH" verwenden; das Konzept ist ähnlich wie beim "SVERWEIS" und dem "WVERWEIS". Falls Du Excel auf Englisch benutzt, wären dies die Formeln "WRAPROWS" (ZEILENUMBRUCH) oder "WRAPCOLS" (SPALTENUMBRUCH), Rows für Zeilen, Cols für Spalten (Columns).

Die zufällig generierten "Testdaten" habe ich im Übrigen mit UiPath und dem "Testing" Aktivitäten-Package aufbereitet (UiPath.Testing.Activites). Es sind dies die Aktivitäten GivenName, LastNameAddress und RandomNumber.

Einen Bericht drehen (Spalten zu Zeilen - Transponieren)

Angenommen Du hast nachfolgende Tabelle (die Überschrift befindet sich oberhalb der einzelnen Spalten):

DatenbankSpalten

Es besteht die Möglichkeit, diesen bestehenden Bericht zu drehen - mit einer einfachen Funktion; ohne, dass man sämtliche Zellen oder Inhalte manuell und einzeln kopieren oder abschreiben müsste. Markiere dazu den gesamten Bereich (im Beispiel oben "A1:C7") und kopiere diesen. Selektiere nun die gewünschte Zelle, wo die Informationen neu angezeigt werden sollten und gehe via Rechtsklick auf "Inhalte einfügen...":

BerichtDrehenInhalteEinfuegen

In nachfolgender Maske kannst Du theoretisch noch Einfüge-Optionen wie "Werte", "Formate" etc. wählen. Setze rechts unten den Haken bei "Transponieren" - diese Funktion dreht Deinen gesamten Bericht / Deine Tabelle.

BerichtDrehenTransponieren

Das Ergebnis:

DatenbankZeilen

Aus Spalten wurden also Zeilen. Beachte, dass ich absichtlich Zeile 10 (oder eine Zeile unterhalb der vorherigen Daten) selektiert habe. Man kann nämlich nicht einfach den Bereich kopieren und an selber Stelle wieder einfügen und so quasi den vorherigen Bericht überschreiben. Dabei kommt nachfolgende Fehlermeldung:

BerichtDrehenFehlermeldung

Wähle also stets einen anderen Bereich und lösche daraufhin Deine vorherigen Daten. An dieser Stelle fragst Du Dich vielleicht, weshalb man nicht gleich die Ursprungstabelle ausschneidet. Die Möglichkeit mit "Inhalte einfügen" steht beim Ausschneiden gar nicht erst zur Verfügung.