
Eu tenho uma pasta de trabalho do Excel com várias planilhas. Todos eles têm os mesmos nomes de coluna. No entanto, o número de linhas difere de folha para folha. Quero criar uma planilha de visão geral onde possa ver todos os dados de cada planilha. Eu poderia ir em cada planilha e apenas copiar e colar os dados da segunda linha para a última linha com os dados de cada planilha. Mas acho que existe uma maneira mais fácil de fazer isso?
Obrigado pela ajuda!
Responder1
Esta é uma solução usando VBA:
Public Sub overview()
resultsheet = "Overview"
Dim wkb As Workbook
Dim wks, wks1 As Worksheet
Set wkb = ThisWorkbook
On Error GoTo SheetError:
Set wks1 = wkb.Sheets(resultsheet)
destrow = 1
totalcolumn = 1
totalwks = wkb.Sheets.Count
For i = 1 To totalwks
Set wks = wkb.Sheets(i) 'Iterate over all sheets
wksname = wks.Name
If wksname <> resultsheet Then 'Exclude the overview sheet
rowdata = True
columndata = True
thisrow = 2
thiscolumn = 1
totalempty = 0
While rowdata = True
If i = 1 Then 'First sheet section
a = wks.Cells(thisrow - 1, thiscolumn)
If a <> "" Then
wks1.Cells(destrow, thiscolumn) = a
thiscolumn = thiscolumn + 1
Else
If thisrow = 2 Then
totalcolumn = thiscolumn
End If
totalempty = totalempty + 1
If totalempty = totalcolumn Then
rowdata = False
End If
If thiscolumn = totalcolumn Then
thisrow = thisrow + 1
thiscolumn = 1
destrow = destrow + 1
totalempty = 0
End If
End If
Else ' Any other Sheet section
a = wks.Cells(thisrow, thiscolumn)
If a <> "" Then
rowdata = True
wks1.Cells(destrow, thiscolumn) = a
thiscolumn = thiscolumn + 1
Else
totalempty = totalempty + 1
If totalempty = totalcolumn Then
rowdata = False
End If
If thiscolumn = totalcolumn Then
thisrow = thisrow + 1
thiscolumn = 1
destrow = destrow + 1
totalempty = 0
End If
End If
End If
Wend
End If
Next i
Exit Sub
SheetError:
If Err.Number = 9 Then
createwks = MsgBox("Worksheet " & resultsheet & " doesn't exist" & vbCrLf & "Do you want to create it?", vbYesNo, Error)
End If
If createwks = 6 Then
Set wks1 = wkb.Worksheets.Add(After:=Worksheets(Worksheets.Count))
wks1.Name = resultsheet
Resume
End If
End Sub
Você tem que abrir Macros/VBA emEsta pasta de trabalhoinsira um módulo e cole este código no lado direito, depois execute e verifique o conteúdo da planilha chamadaVisão geralquando termina.
Responder2
Eu faria isso manualmente :)
Você pode dar uma olhadaesta solução (Consolidar dados por posição), você verá que é uma sobrecarga semelhante:
Em cada planilha que contém os dados que você deseja consolidar, configure os dados fazendo o seguinte:
Certifique-se de que cada intervalo de dados esteja em formato de lista: cada coluna tenha um rótulo na primeira linha e contenha fatos semelhantes, e não haja linhas ou colunas em branco na lista.
Coloque cada intervalo em uma planilha separada, mas não coloque nenhum intervalo na planilha onde planeja colocar a consolidação.
Certifique-se de que cada intervalo tenha o mesmo layout.
Na planilha mestre, clique na célula superior esquerda da área onde deseja que os dados consolidados apareçam.
Nota Para evitar a substituição de dados existentes na planilha de destino pelos dados que você está consolidando, certifique-se de deixar células suficientes à direita e abaixo desta célula para os dados consolidados.
... e tanto tempo ...
Responder3
Não vejo vantagem em fazer isso. Não sei dizer o que você deve fazer, mas se você dividiu os dados em diversas planilhas, deve ter um motivo para fazer isso. Se você tem um motivo, por que se juntar a eles? Isso não faz sentido para mim. Tudo bem, o que eu faria é: por que preciso ver isso, em primeiro lugar, todos juntos? Isso apenas torna difícil encontrar qualquer coisa. Espere, sim, apenas se você quiser usar a função de edição para localizar dados específicos sobre ele. Mas você tem que fazer isso muitas vezes? Eu faria, se houver algo relacionado, por exemplo, um SUM ou outro currículo em cada planilha, e na nova planilha faria uma referência cruzada para aquele campo em cada planilha separada.para consolidar os dados, sem copiar os dados inteiros para apenas uma folha. Se você é um bom programador a primeira solução para copiá-lo pode ajudar, mas não é tão simples assim, você verá. E por último, mas não menos importante, se cada planilha crescer em números de linha, certifique-se de que a SOMA ou qualquer outra coisa esteja na parte superior e à direita, para que a planilha cresça, mas os dados consolidados não sejam afetados.