Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten aus einer Zelle aufteilen als neue Datensätze
#1
Photo 
Hallo und guten Morgen,

ich arbeite mit Excel 365 und kann damit auch schon ein wenig anfangen. Auch PQ hab ich schon öfters verwendet.
Aber so ganz fortgeschritten bin ich noch nicht und daher wende ich mich mit meinem Problem mal hier an das Forum  Angel

Ich habe eine Tabelle die einige Zellen enthält, die ich aufteilen möchte. Auf neue Spalten gelingt mir das auch gut mit "Text in Spalten" trennen.

Nun würde ich aus den Daten in den neuen Spalten aber einfach gerne neue Zeilen machen und ich meine ich hab sowas schon mal mit "entpivotieren" gesehen.
Aber es will mir nicht so richtig gelingen.


Angehängt habe ich die Ursprungstabelle, die getrennten Spalten sowie das Ziel, wie die Tabelle aussehen soll.

Vielen Dank schon mal für alle Tipps und Antworten.

Grüße
Mati

   
   
   
Antworten Top
#2
Hallo

mit folgendem Makro wäre das möglich.
Ausgehend von der Ursprungstabelle...

in ein normales Modul

Code:
Sub Splitten()
    Dim LR As Integer, Sp As Integer, i As Integer, Z1 As Integer, Arr, Trenn As String
    Sp = 3 'Daten stehen in C
    Z1 = 2 'Daten ab Zeile 2
    Trenn = "/"
   
    With ActiveSheet
        LR = .Cells(.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
        For i = LR To Z1 Step -1
            If InStr(.Cells(i, Sp), Trenn) > 0 Then
                Arr = Split(.Cells(i, Sp), Trenn)
                .Rows(i + 1).Resize(UBound(Arr)).Insert Shift:=xlDown
                .Rows(i).Copy Rows(i + 1).Resize(UBound(Arr))
                .Cells(i, Sp).Resize(UBound(Arr) + 1, 1) = Application.Transpose(Arr)
            End If
        Next
    End With
End Sub

LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • matigol
Antworten Top
#3
Hallo und vielen Dank, 
 ehrlich gesagt bin ich mit Makros nicht sehr vertraut. 
Unser Sharepoint und das Netzwerk ist ziemlich strikt und Dateien mit Makros vom Sharepoint laden gestaltet sich schwierig.

Trotzdem danke für die Antwort

VG
Mati
Antworten Top
#4
Das lässt sich recht einfach mit Power Query realisieren. Zwar kann ein aktuelles Power Query auch Bilder in Tabellen umwandeln, aber das ist dann immer nur eine einmalige Aktion und somit für mehrfache Ausführung nicht geeignet.
[-] Folgende(r) 1 Nutzer sagt Danke an ws-53 für diesen Beitrag:
  • matigol
Antworten Top
#5
Die Tabelle sieht natürlich anders aus und enthält andere Daten, die Bilder sollten nur als Beispiel zur Erklärung dienen. ;)
Antworten Top
#6
Zitat:Die Tabelle sieht natürlich anders aus und enthält andere Daten, die Bilder sollten nur als Beispiel zur Erklärung dienen. ;)

Ja, die Bilder haben ja auch genügt, um dir eine Lösungsvariante zu nennen. Da kannst du nun ja direkt loslegen und deine Tabelle in die gewünschte Form bringen.

Sofern du dann aber doch noch ein wenig Unterstützung benötgigst. dann solltest du eine Mustermappe erstellen, die vom Aufbau dem Original entspricht und die anhand von Dummydaten zu jeder vorkommenden Besonderheit einen Datensatz, sowie eine Erklärung, wie diese behgandlet werden soll, enthält.

Ist die Besonderheit nur die Jahresspalte, die in Zeilen aufgeteilt werden soll, dann gibt es dafür im Spaltenmenü vom PQ die Funktion "Spalte Teilen" und die Option dies in Zeilen, anstatt in neue Spalten zu teilen. In diesem Fall ist somit nur ein Befehl notwendig, um das gewünschte Ergebnis zu erhalten.
[-] Folgende(r) 1 Nutzer sagt Danke an ws-53 für diesen Beitrag:
  • matigol
Antworten Top
#7
Hallo

Daten stehen in A2:D6(Daten ohne Überschriften).
Code:
=TEXTTEILEN(TEXTVERKETTEN("|";;NACHZEILE(A2:D6;LAMBDA(arr;TEXTVERKETTEN("|";;INDEX(arr;1;1)&"#"&INDEX(arr;1;2)&"#"&TEXTTEILEN(INDEX(arr;1;3);"/")&"#"&INDEX(arr;1;4)))));"#";"|")
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • matigol
Antworten Top
#8
(12.03.2024, 11:15)ws-53 schrieb: Ja, die Bilder haben ja auch genügt, um dir eine Lösungsvariante zu nennen. Da kannst du nun ja direkt loslegen und deine Tabelle in die gewünschte Form bringen.

Sofern du dann aber doch noch ein wenig Unterstützung benötgigst. dann solltest du eine Mustermappe erstellen, die vom Aufbau dem Original entspricht und die anhand von Dummydaten zu jeder vorkommenden Besonderheit einen Datensatz, sowie eine Erklärung, wie diese behgandlet werden soll, enthält.

Ist die Besonderheit nur die Jahresspalte, die in Zeilen aufgeteilt werden soll, dann gibt es dafür im Spaltenmenü vom PQ die Funktion "Spalte Teilen" und die Option dies in Zeilen, anstatt in neue Spalten zu teilen. In diesem Fall ist somit nur ein Befehl notwendig, um das gewünschte Ergebnis zu erhalten.

Viiiilen Dank!

Das war genau wie ich es wollte und hat nun auch in der Originaldatei geklappt.

Danke auch noch allen anderen Postern für die Mühen


Beste Grüße
Mati
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste