Consolide dados de várias planilhas com as mesmas colunas, mas com números diferentes de linhas no Excel

Consolide dados de várias planilhas com as mesmas colunas, mas com números diferentes de linhas no Excel

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.

informação relacionada