Wie kann ich in Excel mehrere Zeilen in eine einzige Spalte transponieren?

Wie kann ich in Excel mehrere Zeilen in eine einzige Spalte transponieren?

Ich habe Datenzeilen gleicher Länge, z. B. A1:A5, B1:B5, C1:C5 usw. Ich möchte diese in eine einzelne Spalte einfügen, z. B. D1:D5, D6:D10, D11:D15 usw. Es gibt keine Überschriften oder Zeilenkennungen. Ich denke, dass die Verwendung von INDIRECT mit einer Kombination aus ROW- und COLUMN-Werten funktionieren sollte, aber ich kann anscheinend nicht die richtige Kombination finden.

Antwort1

Mit Daten inA1durchC5, InT1 (T1)eingeben:

=OFFSET($A$1,ROUNDUP(ROWS($1:1)/3,0)-1,MOD(ROWS($1:1)-1,3))

und kopieren Sie nach unten. Dies wirdtransponierendie Daten in einer einzigen Spalte:

Bildbeschreibung hier eingeben

Es ist ebenso einfach, die Daten ohne Transposition in eine einzelne Spalte zu setzen.

Antwort2

Dadurch werden Spaltenüberschriften ignoriert und die Daten aus den ursprünglichen Zellen nicht gelöscht. Abhängig von Ihrem Arbeitsblatt müssen Sie möglicherweise die Werte für die Spalten ändern.

Sub Macro1()

  Const firstRowWithData = 2 ' assumes labels in row 1
  Dim anyWS As Worksheet
  Dim copyRange As Range
  Dim CP As Integer

  For Each anyWS In ThisWorkbook.Worksheets
    For CP = Range("B1").Column To Range("D1").Column
      Set copyRange = anyWS.Range(anyWS.Cells(2, CP).Address & ":" & _
       anyWS.Cells(Rows.Count, CP).End(xlUp).Address)
      copyRange.Copy anyWS.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
    Next
  Next

End Sub

Vor

A Header    B Header    C Header
a           b           c
a           b           c
a           b           c

nach

A Header    B Header    C Header
a           b           c
a           b           c
a           b           c
b       
b       
b       
c       
c       
c       

Löschen Sie dann die ursprünglichen Spalten manuell.

verwandte Informationen