BUSCARV en Varias Hojas de Excel

7
25/9/2014 BUSCARV en varias hojas de Excel - Excel Total INICIO FUNCIONES ACERCA BUSCARV en varias hojas de Excel Generalmente recomiendo consolidar los datos en una sola hoja de Excel antes de utilizar la función BUSCARV, pero si por alguna razón esto no es posible y necesitas utilizar la función BUSCARV en varias hojas de Excel, entonces considera alguna de las alternativas que mostraré en este artículo. Como sabemos, la función BUSCARV devuelve el error #N/A cuando no encuentra el valor que se está buscando, es por eso que la primer solución propuesta es la siguiente: Utilizar la función 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 función SI.ERROR Para saber si la función BUSCARV ha devuelto un error podemos utilizar la función SI.ERROR que está disponible desde la versión de Excel 2007. El primer argumento de la función SI.ERROR es el valor que será evaluado y su segundo argumento es la acción a tomar en caso de obtener un error. Si deseamos realizar la búsqueda en dos hojas, entonces nuestra implementación seguirá la siguiente lógica: http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 1/10

description

excel

Transcript of BUSCARV en Varias Hojas de Excel

Page 1: BUSCARV en Varias Hojas de Excel

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

INICIO FUNCIONES ACERCA

BUSCARV en varias hojas de ExcelGeneralmente recomiendo consolidar los datos en una sola hoja de Excel antes de utilizar la función BUSCARV, pero si por alguna razón esto no es posible y necesitas utilizar la función BUSCARV en varias hojas de Excel, entonces considera alguna de las alternativas que mostraré en este artículo.

Como sabemos, la función BUSCARV devuelve el error #N/A cuando no encuentra el valor que se está buscando, es por eso que la primer solución propuesta es la siguiente: Utilizar la función 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 función SI.ERRORPara saber si la función BUSCARV ha devuelto un error podemos utilizar la función SI.ERROR que está disponible desde la versión de Excel 2007. El primer argumento de la función SI.ERROR es el valor que será evaluado y su segundo argumento es la acción a tomar en caso de obtener un error. Si deseamos realizar la búsqueda en dos hojas, entonces nuestra implementación seguirá la siguiente lógica:

Esta no es la sintaxis de la fórmula, solo estoy ilustrando que el primer argumento de la función SI.ERROR será la búsqueda sobre la primera hoja y como segundo argumento haremos la búsqueda sobre la segunda hoja. El segundo argumento solo será ejecutado en caso de que la primera búsqueda resulte en error. Si en lugar de realizar la búsqueda sobre dos hojas necesitamos buscar en tres hojas, entonces necesitamos saber si la búsqueda sobre la segunda hoja nos devuelve un error y para eso volvemos a utilizar la función SI.ERROR lo cual nos lleva a tener una anidación de funciones de la siguiente manera:

http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 1/10

Page 2: BUSCARV en Varias Hojas de Excel

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

En la siguiente imagen puedes observar tres tablas, cada una en hojas

diferentes, que contienen una columna con el código de un libro y su título.

Como primer ejemplo haremos una búsqueda sobre las primeras dos tablas. En una nueva hoja realizaré la búsqueda del título de un libro en base a su código el cual colocaré en la celda B1 y para ello utilizaré la siguiente fórmula:

=SI.ERROR(BUSCARV(B1,Hoja1!A2:B6,2,FALSO), BUSCARV(B1,Hoja2!A2:B6,2,FALSO))

Lo más importante a resaltar de esta fórmula es el rango de búsqueda especificado en ambas funciones BUSCARV. En ambas funciones hago la referencia precisa hacia la hoja donde deseo que se realice la búsqueda.Observa el resultado obtenido al aplicar esta fórmula a los datos:

http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 2/10

Sigue a Excel Total

Función BUSCARV en varias hojas

.buscar en varias hojaspropuesta funciona correctamente al Ahora hagamos un ejemplo para probar que nuestra lógica de solución

Page 3: BUSCARV en Varias Hojas de Excel

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

Si por el contrario busco un código de producto que no existe en ninguna de las primeras dos tablas, entonces obtendré como resultado el error #N/A:

Ahora consideremos en nuestra búsqueda la información de la tercera hoja la cual contiene más códigos de producto. Para ampliar nuestra búsqueda a esa tercera hoja debo utilizar de nueva cuenta la función SI.ERROR como parte del segundo argumento de la primera función 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 modificación nuestra búsqueda se extiende a la tercera hoja y podremos saber si el código de producto buscado se encuentra en ella:

Si quisiéramos incluir una cuarta hoja en la búsqueda solo debemos utilizar de nueva cuenta la función SI.ERROR para validar los resultados de la tercera hoja y en caso de obtener un error volver a buscar en la cuarta hoja.

http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 3/10

Page 4: BUSCARV en Varias Hojas de Excel

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

Como sabemos, Excel 2007 y 2010 nos permiten anidar hasta 64 funciones por lo que ese sería el máximo de hojas que podríamos incluir utilizando este método.

Sin embargo, no te recomiendo llegar hasta ese límite ya que con solo agregar una o dos funciones anidadas más a nuestro ejemplo la fórmula incrementaría su complejidad y cada vez se volvería más difícil descubrir cualquier error. En caso de que necesites hacer búsquedas sobre una gran cantidad de hojas te recomiendo utilizar una macro ya que eso evitará la elaboración de una fórmula más compleja.

Buscar en varias hojas con una macroLa segunda alternativa que tenemos para buscar en varias hojas de Excel es utilizar una función definida por el usuario. Solo debemos ejecutar la función VLOOKUP (BUSCARV) en cada una de las hojas del libro sobre el rango especificado:

1 Function BUSCARVMultiple(Valor_buscado As Variant, Ma

23456789101112131415161718

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 = NothingBUSCARVMultiple = Encontrado End Function

A continuación haré una explicación breve de este código. Los argumentos de la función BUSCARVMultiple son los mismos argumentos que utiliza la función BUSCARV comenzando por el valor buscado, la matriz de búsqueda, la columna que deseamos como resultado y finalmente el argumento ordenado.

En la línea 6 del código se inicia el recorrido por cada una de las hojas del libro y en la línea 7 obtenemos la dirección del rango sobre el cual se realizará la búsqueda. De inmediato ejecutamos la función 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 inglés y por esa razón usamos la instrucción WorksheetFunction.VLookup.

http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 4/10

Page 5: BUSCARV en Varias Hojas de Excel

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

Finalmente en la línea 12 validamos si la variable Encontrado tiene algún valor. Si la variable no está vacía quiere decir que la función VLOOKUP encontró un resultado y por lo tanto terminamos la búsqueda. De lo contrario el ciclo se vuelve a repetir y continuamos la búsqueda en la siguiente hoja del libro. En la siguiente imagen puedes observar que la función recién implementada nos devuelve el mismo resultado que nuestra solución anterior la cual utilizaba funciones de Excel:

Ahora ya conoces dos posibles soluciones para aquellos casos en los que necesites utilizar la función BUSCARV en varias hojas de Excel. Descarga el libro de trabajo que contiene la alternativa de solución utilizando funciones de Excel, así como la alternativa de solución utilizando la macro y continúa experimentando con el ejemplo.

Artículos relacionadosFunción BUSCARV con datos de otra hoja

Por Moisés Ortíz 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 función que ha sido ya de por sí muy útil para mi trabajo.

http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 5/10

Page 6: BUSCARV en Varias Hojas de Excel

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

Mario Herrera

Excelente .La Función es sumamente practica y funcional.

http://exceltotal.com/buscarv-en-varias-hojas-de-excel/ 6/10