Reorganizando uma matriz do Excel de 15 X 25 em três colunas

2

No Excel, tenho dados em células de A1 a O5 (15 x 25).

Eu quero reorganizar as coisas de modo que eu tenha as seguintes

  [A1][B1][C1]   
  [D1][E1][F1]   
  [G1][H1][I1]   
  [J1][K1][L1]  
  [M1][N1][O1]   
  [A2][B2][C2]   
  [D2][E2][F2]

... e assim por diante.

Eu tentei e não consegui encontrar uma maneira elegante de fazer isso no Excel. Alguém poderia me avisar?

Eu vi isso mas eles parece estar jogando um jogo um pouco diferente lá.

    
por user1205197 14.02.2012 / 04:14

2 respostas

2

Aqui está uma foto do VBA:

Option Explicit

Sub rearrange()
Dim aValues As Variant
Dim i As Integer, j As Integer
Dim lRow As Long

'store the values in an array
aValues = Worksheets("Sheet1").Range("A1:O5").Value
lRow = 1

With Worksheets("Sheet2")
    For i = 1 To UBound(aValues, 1)
        For j = 1 To UBound(aValues, 2) Step 3
            .Cells(lRow, 1).Value = aValues(i, j)
            .Cells(lRow, 2).Value = aValues(i, j + 1)
            .Cells(lRow, 3).Value = aValues(i, j + 2)
            lRow = lRow + 1
        Next j
    Next i
End With
End Sub
    
por 14.02.2012 / 14:02
2

Isso atende às suas necessidades?

  • Defina E21 como =INT((ROW(A1)-1)/5)
  • Defina F21 como =MOD(ROW(A1)-1,5)
  • Defina A21 como =INDIRECT("R" & ($E21+1)&"C" & (COLUMN(A21)+$F21*3),FALSE)
  • Copie A21 para B21 e C21
  • Copie A21: F21 abaixo quantas linhas forem necessárias.
  • Use Colar Valores Especiais para converter A21: Cnn para valores em vez de fórmula.
por 14.02.2012 / 14:05