No Excel, como posso transpor várias linhas em uma única coluna?

0

Eu tenho linhas de dados de tamanho igual, por exemplo A1: A5, B1: B5, C1: C5, etc. Eu quero colocá-los em uma única coluna, por ex. D1: D5, D6: D10, D11: D15, etc. Não há cabeçalhos ou identificadores de linha. Eu acho que usar INDIRECT com uma combinação de valores de ROW e COLUMN deve funcionar, mas parece que não consigo encontrar a combinação certa.

    
por SVH 13.02.2016 / 23:01

2 respostas

0

Com dados em A1 através de C5 , em D1 digite:

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

e copie para baixo. Isto irá transpor os dados para uma única coluna:

É igualmente fácil colocar os dados em uma única coluna sem transposição.

    
por 14.02.2016 / 01:57
0

Isso ignorará cabeçalhos de coluna e não excluirá os dados das células originais. Dependendo da sua planilha, você pode precisar alterar os valores das colunas.

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

depois

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

Em seguida, exclua manualmente as colunas originais.

    
por 16.02.2016 / 18:34