Cómo transponer una larga lista de grupos de filas en columnas (con código/fórmula)

Cómo transponer una larga lista de grupos de filas en columnas (con código/fórmula)

Tengo datos que quiero transponer, lo cual debería ser bastante fácil. Sin embargo, hay varias filas que necesito transponer en grupos. Cada última fila de cada grupo tiene un TEXTO determinado, por lo que no sé si hay alguna forma de crear un rango buscando texto versus un rango. (¿Funcionaría esto? =if(isnumber(search(“TEXT”,A1))Intenté crear una macro, pero obviamente necesito el código para transponer los datos a la hoja de cálculo y no los mismos datos una y otra vez. ¡Cualquier ayuda sería excelente!

Aquí hay una imagen de lo que necesito (como no puedo formatearla, se ve raro, y como soy nuevo no pude incrustarla, así que incluí un enlace de una imagen de cómo se ven/deberían verse las filas/columnas). parece:

De esto:

Column A
Row A1
Row A2
Row A3
Row A4
Row A5
Row A6
Row A7
Row A8
Row A9
Row A10
Row A11
Row A12
Row A13

A esto:

Col A   Col B   Col C   Col D   Col E
Row A1  Row A2  Row A3  Row A4
Row A5  Row A6  Row A7  Row A8  Row A9
Row A10 Row A11 Row A12 Row A13

Aquí está el código de bucle que encontré:

Sub Test1()
'UpdatebyExtendoffice20161222
      Dim x As Integer
      Application.ScreenUpdating = False
      ' Set numrows = number of rows of data.
      NumRows = Range("A1", Range("A8”).End(xlDown)).Rows.Count
      ' Select cell a1.
      Range("A1").Select
      ' Establish "For" loop to loop "numrows" number of times.
      For x = 1 To NumRows
         ' Insert your code here.

         ' Selects cell down 7 row from active cell.
         ActiveCell.Offset(7, 0).Select
      Next
      Application.ScreenUpdating = True
End Sub

Respuesta1

Digamos que comenzamos con:

ingrese la descripción de la imagen aquí

y queremos reorganizarnos en filas con el último elemento de cada fila siendoNuevo. Este código:

Sub ReOrg()
    Dim i As Long, j As Long, N As Long, K As Long
    Dim kk As Long
    i = 1
    j = 2
    K = Cells(Rows.Count, "A").End(xlUp).Row

    For kk = 1 To K
        Cells(i, j).Value = Cells(kk, 1).Value
        j = j + 1
        If Cells(kk, 1).Value = "New" Then
            i = i + 1
            j = 2
        End If
    Next kk
End Sub

Producirá:

ingrese la descripción de la imagen aquí

información relacionada