Freigeben über

Transponieren von mehreren Zeilen?

Anonym
2021-08-24T12:41:59+00:00

Hallo, ich habe als Export aus einer Datenbank eine Liste die die Attribute der jeweiligen Produkte nur untereinander darstellt. Ich benötige diese jedoch zur weiteren Verarbeitung als Spalte.

574436 Protein
574436 Ohne Farbstoffe
574436 Nassfutter
574436 Pute
574436 Hund
574436 Alleinfuttermittel

und so sollte es aussehen:

574436 Protein Ohne Farbstoffe Nassfutter Pute Hund

Ich hab schon alles mögliche probiert - funktioniert hat nur, die jeweiligen Datensätze einzeln zu transponieren. Ich komm einfach nicht weiter - da das eine große Datei mit hunderten von Datensätzen ist, würde ich das gerne einfacher verarbeiten.

Hat jemand eine Idee wie ich das lösen könnte?

Danke.

Microsoft 365 und Office | Excel | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare
{count} Stimmen
Antwort, die vom Frageautor angenommen wurde
  1. Anonym
    2021-08-24T14:16:53+00:00

    Hallo Kerstin,

    drücke Alt+F11 damit du in den VBA-Editor kommst => Einfügen => Modul und kopiere den Code in dieses Modul.

    Gehe zurück nach Excel => Entwicklertools => Makros und starte das Makro "Transponieren".

    Oder lade dir die Mappe herunter (Makros sind in OneDrive deaktiviert). In der Mappe kannst du sehen, wo der Code steht und was das Makro macht:

    https://1drv.ms/x/s!AqMiGBK2qniTgfE31iJdN6QQ3gh0UA?e=SKPvRw

    Claus

    Eine Person fand diese Antwort hilfreich.
    0 Kommentare Keine Kommentare

3 zusätzliche Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2021-08-24T13:44:49+00:00

    Hallo Kerstin,

    probiere es mit VBA. Ändere im Code gegebenenfalls die Blattnamen und die Bezüge:

    Sub Transponieren() 
    
    Dim myCnt As Integer, i As Integer 
    
    Dim LRow As Long, n As Long 
    
    Dim varData As Variant 
    
    n = 1 
    
    With Sheets("Tabelle1") 
    
        LRow = .Cells(.Rows.Count, 1).End(xlUp).Row 
    
        For i = 1 To LRow 
    
            myCnt = Application.CountIf(.Range("A:A"), .Cells(i, 1)) 
    
            varData = .Range(.Cells(i, 2), Cells(i - 1 + myCnt, 2)) 
    
            Sheets("Tabelle2").Cells(n, 1) = .Cells(i, 1) 
    
            Sheets("Tabelle2").Cells(n, 2).Resize(, myCnt) = Application.Transpose(varData) 
    
            i = i - 1 + myCnt 
    
            n = n + 1 
    
        Next 
    
    End With 
    
    End Sub
    

    Claus

    0 Kommentare Keine Kommentare
  2. Anonym
    2021-08-24T14:13:15+00:00

    Vielen Dank Claus - aber leider habe ich mit VB noch nie gearbeitet und hab keinen Plan wie ich hier vorgehen müßte.......

    0 Kommentare Keine Kommentare
  3. Anonym
    2021-08-24T15:42:38+00:00

    Super - es hat geklappt! Vielen Dank für die Hilfe und die "Schritt-für-Schritt" Anleitung!

    0 Kommentare Keine Kommentare