Consolide datos de varias hojas de trabajo con las mismas columnas pero diferente número de filas en Excel

Consolide datos de varias hojas de trabajo con las mismas columnas pero diferente número de filas en Excel

Tengo un libro de Excel con varias hojas de trabajo. Todos tienen los mismos nombres de columna. Sin embargo, el número de filas difiere de una hoja a otra. Quiero crear una hoja de descripción general donde pueda ver todos los datos de cada hoja. Podría ir a cada hoja y simplemente copiar y pegar los datos desde la segunda fila hasta la última fila con los datos de cada hoja. ¿Pero creo que hay una manera más fácil de hacer esto?

¡Gracias por tu ayuda!

Respuesta1

Esta es una solución 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

Tienes que abrir Macros/VBA enEste libro de trabajoinserte un módulo y pegue este código en el lado derecho, luego ejecútelo y verifique el contenido en la hoja llamadaDescripción generalcuando acaba.

Respuesta2

Yo lo haría manualmente :)

Puedes echar un vistazo aesta solución (Consolidar datos por posición), verás que es una sobrecarga similar:

En cada hoja de trabajo que contenga los datos que desea consolidar, configure los datos haciendo lo siguiente:

Asegúrese de que cada rango de datos esté en formato de lista: cada columna tiene una etiqueta en la primera fila y contiene hechos similares, y no hay filas ni columnas en blanco dentro de la lista.

Coloque cada rango en una hoja de trabajo separada, pero no coloque ningún rango en la hoja de trabajo donde planea colocar la consolidación.

Asegúrese de que cada rango tenga el mismo diseño.

En la hoja de trabajo maestra, haga clic en la celda superior izquierda del área donde desea que aparezcan los datos consolidados.

Nota Para evitar sobrescribir los datos existentes en la hoja de trabajo de destino con los datos que está consolidando, asegúrese de dejar suficientes celdas a la derecha y debajo de esta celda para los datos consolidados.

...y hasta luego...

Respuesta3

No veo ninguna ventaja en hacer esto. No sé qué tienes que hacer, pero si dividiste los datos en varias hojas, debes tener una razón para hacerlo. Si tienes una razón, ¿por qué unirte? No tiene sentido para mí. Muy bien, lo que haría es, ¿por qué necesito verlos, en primer lugar, todos juntos? Simplemente hace que sea difícil encontrar algo. Espere, sí, solo si desea utilizar la función de edición para localizar datos específicos en él. Pero, ¿hay que hacerlo muchas veces? Si hay algo relacionado, haría, por ejemplo, una SUMA u otro currículum en cada hoja, y en la nueva hoja haría una referencia cruzada para ese campo en cada hoja de cálculo separada. Para consolidar los datos, sin copiar todos los datos. a una sola hoja. Si eres un buen programador la primera solución para copiarlo te puede ayudar, pero no es tan sencillo, ya verás. Y por último, pero no menos importante, si cada hoja crece en números de filas, asegúrese de que la SUMA o cualquier otra cosa esté en la parte superior y derecha, para que la hoja crezca pero los datos consolidados no se vean afectados.

información relacionada