Transponer y organizar Excel

2

Tengo un montón de filas, que quiero convertir en una mesa.

¿Hay alguna manera en Excel de convertir un grupo de entradas, cada una de las cuales ocupa cuatro filas en una tabla, donde cada una de las cuatro filas se coloca en una de las cuatro columnas?

Básicamente esto:

a
b
c
d

a
b
c
d

a

 a b c d
 a b c d
Daniel
fuente

Respuestas:

4

No se me ocurre la forma de hacerlo para TODOS ellos, pero puedes pegar así ...

  • seleccione un conjunto de abcd
  • copia las celdas
  • editar -> pegar especial
  • [x] el botón de transposición en la parte inferior

Eso lo hará para ESE conjunto de a / b / c / d. Sé que no es una respuesta completa, pero si no hay muchos de estos, entonces eso podría funcionar.

Aquí hay una macro rápida que hará la transposición por usted, si lo desea. Simplemente ponga todo en la columna "A", y lo pondrá todo en B1, C1, D1, etc. Las filas están delimitadas por espacios, y dos espacios en una fila significa "detener".

arreglado, debería funcionar bien para hasta 255 columnas ahora. y sí, puede usar la configuración Transponer en la función pastespecial en vba, pero eso hace que el código sea más complicado para el mismo resultado, así que lo mantuve simple

Sub Macro1()
    lastBlank = False
    col = 2 'B
    row = 1
    For Each cell In Range("A:A")
        v = Trim(CStr(cell))
        If v = "" Then
            If lastBlank = True Then Exit For
            lastBlank = True
            col = 2 'B
            row = row + 1
        Else
            Cells(row, col) = v
            col = col + 1
            lastBlank = False
        End If
    Next
End Sub
  • Herramientas-> Macros-> Editor de Visual Basic
  • [menú] Insertar -> Módulo
  • Pegue la macro en (debe estar en 'Módulo1')
  • Ejecutar (flecha verde). O ... cerrar y herramientas-> macro-> macros -> [ejecutar]
Andrew Backer
fuente
1

Si alguien todavía está leyendo este artículo de blog, aquí hay otra forma de hacerlo (solo establezca en qué fila se encuentra el primer dato utilizando la constante FirstRow y luego suéltela) ...

Sub TransposeRowsFourAtATime()  
  Dim X As Long, LastRow As Long, OffSetCounter As Long  
  Const FirstRow As Long = 2  
  LastRow = Cells(Rows.Count, "A").End(xlUp).Row  
  For X = FirstRow To LastRow Step 5  
    Cells(FirstRow, "A").Offset(OffSetCounter).Resize(1, 4) = _  
       WorksheetFunction.Transpose(Cells(X, "A").Resize(4))  
  OffSetCounter = OffSetCounter + 1  
  Next  
  Range(Cells(FirstRow + OffSetCounter, "A"), Cells(LastRow, "A")).Clear  
End Sub  

Rick Rothstein (MVP - Excel)

Rick Rothstein
fuente
0

Hay una función de transposición de Excel . Escriba la función en la celda donde desea que comience la transposición, luego use las funciones de edición-> relleno para copiar la función de lado (y hacia abajo si es necesario).

Debe haber una manera de corregir la indexación de filas (para tener en cuenta los espacios en blanco) utilizando la ADDRESSfunción.

Dana la sana
fuente
0

Puede ingresar estas fórmulas (suponiendo que sus datos comiencen en A1) y completar hasta donde lo necesite

B1            =IF(ISBLANK(A5),A1,"")
C1            =IF(ISBLANK(A5),A2,"")
D1            =IF(ISBLANK(A5),A3,"")
E1            =IF(ISBLANK(A5),A4,"")

Luego, copie y pegue valores especiales. Luego ordene para eliminar las líneas en blanco.

dkusleika
fuente