
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.