En Excel, ¿cómo puedo transponer varias filas en una sola columna?

En Excel, ¿cómo puedo transponer varias filas en una sola columna?

Tengo filas de datos de igual longitud, por ejemplo, A1:A5, B1:B5, C1:C5, etc. Quiero ponerlas en una sola columna, por ejemplo, D1:D5, D6:D10, D11:D15, etc. No hay encabezados ni identificadores de fila. Creo que usar INDIRECTO con una combinación de valores de FILA y COLUMNA debería funcionar, pero parece que no puedo encontrar la combinación correcta.

Respuesta1

con datos enA1a través deC5, enD1ingresar:

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

y copie. Esta voluntadtransponerlos datos en una sola columna:

ingrese la descripción de la imagen aquí

Es igualmente fácil colocar los datos en una sola columna sin transposición.

Respuesta2

Esto ignorará los encabezados de las columnas y no eliminará los datos de las celdas originales. Dependiendo de su hoja de trabajo, es posible que necesite cambiar los valores de las columnas.

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

antes

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

después

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

Luego elimine manualmente las columnas originales.

información relacionada