¿Cómo buscar/encontrar valores en otro libro de trabajo?
Este artículo trata sobre cómo buscar valores y devolver datos desde otro libro de trabajo, y cómo encontrar/buscar valores desde otro libro de trabajo. Aquí presentaré tres soluciones en detalle.
- Buscar datos y devolver valores desde otro libro de trabajo en Excel
- Buscar datos y devolver valores desde otro libro de trabajo cerrado con VBA
Buscar datos y devolver valores desde otro libro de trabajo en Excel
Por ejemplo, estás creando una tabla de Compra de Frutas en Excel, y ahora necesitas buscar las frutas desde otro libro de trabajo y devolver los precios correspondientes como se muestra en las capturas de pantalla a continuación. Aquí te guiaré para resolverlo con la función BUSCARV en Excel.
1. Abre ambos libros de trabajo desde donde buscarás los valores y en el que devolverás los valores.
2. Selecciona una celda en blanco donde devolverás el precio, escribe la fórmula =BUSCARV(B2,[Price.xlsx]Hoja1!$A$1:$B$24,2,FALSO) en ella, y luego arrastra su controlador de relleno para aplicar esta fórmula al rango según sea necesario.

Notas:
(1) En la fórmula anterior, B2 es la fruta que buscarás desde otro libro de trabajo, Price.xlsx indica el nombre del archivo del libro de trabajo desde donde buscarás, Hoja1 significa el nombre de la hoja desde donde buscarás, y A$1:$B$24 es el rango desde donde buscarás. Puedes cambiarlos según sea necesario.
(2) Después de cerrar el libro de trabajo desde donde buscaste, la fórmula se actualizará automáticamente a =BUSCARV(B2,'W:\test\[Price.xlsx]Hoja1'!$A$1:$B$24,2,FALSO), W:\test\ es la ruta de guardado del libro de trabajo desde donde buscaste.
Hasta ahora, todos los precios se han devuelto correctamente como se muestra en la captura de pantalla izquierda. Y estos precios se actualizarán automáticamente si cambia el libro de trabajo original desde donde buscaste.
![]() | ¿La fórmula es demasiado complicada de recordar? ¡Guarda la fórmula como una entrada de Autotexto para reutilizarla con un solo clic en el futuro! Leer más… Prueba gratuita |

Descubre la Magia de Excel con Kutools AI
- Ejecución Inteligente: Realiza operaciones en celdas, analiza datos y crea gráficos, todo impulsado por comandos simples.
- Fórmulas Personalizadas: Genera fórmulas adaptadas para optimizar tus flujos de trabajo.
- Codificación VBA: Escribe e implementa código VBA sin esfuerzo.
- Interpretación de Fórmulas: Comprende fórmulas complejas con facilidad.
- Traducción de Texto: Supera las barreras del idioma dentro de tus hojas de cálculo.
Buscar datos y devolver valores desde otro libro de trabajo cerrado con VBA
Puede ser un poco confuso configurar la ruta de guardado, el nombre del archivo y la hoja de trabajo en la función BUSCARV. Este método introducirá un VBA para resolverlo fácilmente.
1. Presiona las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Haz clic en Insertar > Módulo, y luego pega el siguiente código VBA en la ventana del módulo abierto.
VBA: Buscar datos y devolver valores desde otro libro de trabajo cerrado
Private Function GetColumn(Num As Integer) As String
If Num <= 26 Then
GetColumn = Chr(Num + 64)
Else
GetColumn = Chr((Num - 1) \ 26 + 64) & Chr((Num - 1) Mod 26 + 65)
End If
End Function
Sub FindValue()
Dim xAddress As String
Dim xString As String
Dim xFileName As Variant
Dim xUserRange As Range
Dim xRg As Range
Dim xFCell As Range
Dim xSourceSh As Worksheet
Dim xSourceWb As Workbook
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xUserRange = Application.InputBox("Lookup values :", "Kutools for Excel", xAddress, Type:=8)
If Err <> 0 Then Exit Sub
Set xUserRange = Application.Intersect(xUserRange, Application.ActiveSheet.UsedRange)
xFileName = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", 1, "Select a Workbook")
If xFileName = False Then Exit Sub
Application.ScreenUpdating = False
Set xSourceWb = Workbooks.Open(xFileName)
Set xSourceSh = xSourceWb.Worksheets.Item(1)
xString = "='" & xSourceWb.Path & Application.PathSeparator & _
"[" & xSourceWb.Name & "]" & xSourceSh.Name & "'!$"
For Each xRg In xUserRange
Set xFCell = xSourceSh.Cells.Find(xRg.Value, , xlValues, xlWhole, , , False)
If Not (xFCell Is Nothing) Then
xRg.Offset(0, 2).Formula = xString & GetColumn(xFCell.Column + 1) & "$" & xFCell.Row
End If
Next
xSourceWb.Close False
Application.ScreenUpdating = True
End Sub
Nota: Este VBA devolverá valores en una columna que está 2 columnas detrás de la columna seleccionada. Por ejemplo, selecciono la columna B al aplicar este VBA, los valores se devolverán en la Columna D. Si necesitas cambiar la columna de destino, busca el código xRg.Offset(0, 2).Formula = xString & GetColumn(xFCell.Column + 1) & "$" & xFCell.Row y reemplaza 2 por otro número según lo necesites. 3. Presiona la tecla F5 o haz clic en el botón Ejecutar para ejecutar este VBA.
4. En el cuadro de diálogo que se abre, especifica el rango de datos que buscarás, y haz clic en el Aceptar botón.
5. Ahora selecciona el libro de trabajo donde buscarás los valores en el cuadro de diálogo Abrir Libro de Trabajo que aparece, y haz clic en el Abrir botón.
Ahora todos los valores seleccionados se han buscado en el libro de trabajo cerrado especificado, y los valores correspondientes se han devuelto en la columna especificada. Ver captura de pantalla:
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!