You are on page 1of 5

25/9/2014 BUSCARV en varias hojas de Excel - Excel Total

http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 1/10
BUSCARV en varias
hojas de Excel
Generalmente recomiendo consolidar los datos en una sola hoja de Excel
antes de utilizar la funcin BUSCARV, pero si por alguna razn esto no es
posible y necesitas utilizar la funcin BUSCARV en varias hojas de Excel,
entonces considera alguna de las alternativas que mostrar en este artculo.
Como sabemos, la funcin BUSCARV devuelve el error #N/A cuando no
encuentra el valor que se est buscando, es por eso que la primer solucin
propuesta es la siguiente: Utilizar la funcin BUSCARV en la primera hoja, si
obtenemos un error, entonces buscar en la segunda hoja. Si volvemos a
obtener un error, entonces buscamos en la tercera hoja y as sucesivamente.
La funcin SI.ERROR
Para saber si la funcin BUSCARV ha devuelto un error podemos utilizar la
funcin SI.ERROR que est disponible desde la versin de Excel 2007. El
primer argumento de la funcin SI.ERROR es el valor que ser evaluado y su
segundo argumento es la accin a tomar en caso de obtener un error. Si
deseamos realizar la bsqueda en dos hojas, entonces nuestra
implementacin seguir la siguiente lgica:
Esta no es la sintaxis de la frmula, solo estoy ilustrando que el primer
argumento de la funcin SI.ERROR ser la bsqueda sobre la primera hoja y
como segundo argumento haremos la bsqueda sobre la segunda hoja. El
segundo argumento solo ser ejecutado en caso de que la primera
bsqueda resulte en error. Si en lugar de realizar la bsqueda sobre dos
hojas necesitamos buscar en tres hojas, entonces necesitamos saber si la
bsqueda sobre la segunda hoja nos devuelve un error y para eso volvemos
a utilizar la funcin SI.ERROR lo cual nos lleva a tener una anidacin de
INICIO FUNCIONES ACERCA
25/9/2014 BUSCARV en varias hojas de Excel - Excel Total
http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 2/10
funciones de la siguiente manera:
Ahora hagamos un ejemplo para probar que nuestra lgica de solucin
propuesta funciona correctamente al buscar en varias hojas.
Funcin BUSCARV en varias hojas
En la siguiente imagen puedes observar tres tablas, cada una en hojas
diferentes, que contienen una columna con el cdigo de un libro y su ttulo.
Como primer ejemplo haremos una bsqueda sobre las primeras dos tablas.
En una nueva hoja realizar la bsqueda del ttulo de un libro en base a su
cdigo el cual colocar en la celda B1 y para ello utilizar la siguiente
frmula:
=SI.ERROR(BUSCARV(B1,Hoja1!A2:B6,2,FALSO),
BUSCARV(B1,Hoja2!A2:B6,2,FALSO))
Lo ms importante a resaltar de esta frmula es el rango de bsqueda
especificado en ambas funciones BUSCARV. En ambas funciones hago la
referencia precisa hacia la hoja donde deseo que se realice la bsqueda.
Observa el resultado obtenido al aplicar esta frmula a los datos:
Sigue a Excel Total
25/9/2014 BUSCARV en varias hojas de Excel - Excel Total
http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 3/10
Si por el contrario busco un cdigo de producto que no existe en ninguna de
las primeras dos tablas, entonces obtendr como resultado el error #N/A:
Ahora consideremos en nuestra bsqueda la informacin de la tercera hoja la
cual contiene ms cdigos de producto. Para ampliar nuestra bsqueda a
esa tercera hoja debo utilizar de nueva cuenta la funcin SI.ERROR como
parte del segundo argumento de la primera funcin SI.ERROR de la siguiente
manera:
=SI.ERROR(BUSCARV(B1,Hoja1!A2:B6,2,FALSO),
SI.ERROR(BUSCARV(B1,Hoja2!A2:B6,2,FALSO),
BUSCARV(B1,Hoja3!A2:B6,2,FALSO)))
Con esta modificacin nuestra bsqueda se extiende a la tercera hoja y
podremos saber si el cdigo de producto buscado se encuentra en ella:
Si quisiramos incluir una cuarta hoja en la bsqueda solo debemos utilizar
de nueva cuenta la funcin SI.ERROR para validar los resultados de la
tercera hoja y en caso de obtener un error volver a buscar en la cuarta hoja.
25/9/2014 BUSCARV en varias hojas de Excel - Excel Total
http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 4/10
Como sabemos, Excel 2007 y 2010 nos permiten anidar hasta 64 funciones
por lo que ese sera el mximo de hojas que podramos incluir utilizando este
mtodo.
Sin embargo, no te recomiendo llegar hasta ese lmite ya que con solo
agregar una o dos funciones anidadas ms a nuestro ejemplo la frmula
incrementara su complejidad y cada vez se volvera ms difcil descubrir
cualquier error. En caso de que necesites hacer bsquedas sobre una gran
cantidad de hojas te recomiendo utilizar una macro ya que eso evitar la
elaboracin de una frmula ms compleja.
Buscar en varias hojas con una macro
La segunda alternativa que tenemos para buscar en varias hojas de Excel es
utilizar una funcin definida por el usuario. Solo debemos ejecutar la funcin
VLOOKUP (BUSCARV) en cada una de las hojas del libro sobre el rango
especificado:
A continuacin har una explicacin breve de este cdigo. Los argumentos
de la funcin BUSCARVMultiple son los mismos argumentos que utiliza la
funcin BUSCARV comenzando por el valor buscado, la matriz de bsqueda,
la columna que deseamos como resultado y finalmente el argumento
ordenado.
En la lnea 6 del cdigo se inicia el recorrido por cada una de las hojas del
libro y en la lnea 7 obtenemos la direccin del rango sobre el cual se
realizar la bsqueda. De inmediato ejecutamos la funcin VLOOKUP con
los argumentos correspondientes y almacenamos el resultado en la variable
Encontrado. Es importante recordar que en VBA las funciones de Excel
deben ser invocadas por su nombre en ingls y por esa razn usamos la
instruccin WorksheetFunction.VLookup.
Finalmente en la lnea 12 validamos si la variable Encontrado tiene algn
valor. Si la variable no est vaca quiere decir que la funcin VLOOKUP
encontr un resultado y por lo tanto terminamos la bsqueda. De lo contrario
el ciclo se vuelve a repetir y continuamos la bsqueda en la siguiente hoja del
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function BUSCARVMultiple(Valor_buscado As Variant, Matriz_buscar_en
Indicador_columnas As Integer, Optional Ordenado

On Error Resume Next

For Each Hoja In ActiveWorkbook.Worksheets
Matriz = Hoja.Range(Matriz_buscar_en.Address)
Encontrado = WorksheetFunction.VLookup _
(Valor_buscado, Matriz, _
Indicador_columnas, Ordenado)

If Not IsEmpty(Encontrado) Then Exit For
Next Hoja

Set Matriz = Nothing
BUSCARVMultiple = Encontrado

End Function
25/9/2014 BUSCARV en varias hojas de Excel - Excel Total
http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 5/10
libro. En la siguiente imagen puedes observar que la funcin recin
implementada nos devuelve el mismo resultado que nuestra solucin anterior
la cual utilizaba funciones de Excel:
Ahora ya conoces dos posibles soluciones para aquellos casos en los que
necesites utilizar la funcin BUSCARV en varias hojas de Excel. Descarga
el libro de trabajo que contiene la alternativa de solucin utilizando funciones
de Excel, as como la alternativa de solucin utilizando la macro y contina
experimentando con el ejemplo.
Artculos relacionados
Funcin BUSCARV con datos de otra hoja
Por Moiss Ortz el 26 de febrero del 2013.
33 pensamientos en BUSCARV en varias
hojas de Excel
Aydee Marquez
Excelente, Excelente
JUAN MANUEL
Muchas gracias por tus tutoriales, me permiti ampliar el uso de
esta funcin que ha sido ya de por s muy til para mi trabajo.
Mario Herrera
Excelente .La Funcin es sumamente practica y funcional.

You might also like