.15.03.17
Buenas tardes, Yaseret
Dependiendo de lo que tuvieras que hacer, probablemente deberías usar la función BUSCARV() que te dará mayor control sobre las búsquedas, en particular cuando no encuentre lo que está buscando. BUSCAR() por su parte, si no encuentra el valor exacto trae el más cercano. De allí que no te entregue los valores correctos.
Veamos un ejemplo simple, vamos a suponer que tu listado del libro 2 estuviese en la "Hoja1" y en el rango A6:G240. Algo así como esto:
Y si el primer Valor a Buscar (ID, por caso) estuviera en la celda A4 de tu archivo reportemaestro.xls, escribe ésta fórmula en la celda C4 :
=BUSCARV($A4;[Libro2.xlsx]Hoja1!$A$6:$G$240;7;FALSO)
Ten en cuenta si usas comas o punto y coma para separar los argumentos. Yo usé ";" en este ejemplo. Asígnale el formato deseado y, luego, copia esta celda y pégala en las restantes de esta misma columna.
Entonces, la función Buscarv necesita tres argumentos más un cuarto opcional.
El primero es el valor que se busca en la base
Esta, a su vez, es el segundo argumento de la fórmula. El uso del signo $ es para que siempre se refiera a ese rango aún copiando la fórmula a otras celdas/hojas. Notarás que excede la cantidad de elemento para que considere futuras incorporaciones. Desde luego puede estar en la misma hoja o en otra, pero en este caso deberás indicarle el nombre en la dirección de la base. Por ejemplo: Hoja1!$A$6:$G$240
Importante: Nota que la primera columna de la izquierda del rango de búsqueda es donde está la clave o condición a buscar.
El tercer argumento indica qué columna de la base indicada debe ser mostrada donde está la fórmula. Cómo intento mostrar las descripciones, indiqué la columna 7, para que traiga el dato de "Valor nuevo". Si te fijas en la imagen verás que coloqué el número correspondiente a cada columna. Si pegas esta fórmula en otra celda y cambias el número de columna, traerá lo que haya en ella.
Finalmente el cuarto argumento opcional, cuando está en 0 (Falso) obliga a una búsqueda exacta de lo que está en la celda A4. Si no encuentra ese código, la fórmula devolverá #N/A! (No disponible)
Para evitar ese #N/A! puedes usa esta variante que es similar:
=SI(ESNOD(BUSCARV($A4;[Libro2.xlsx]Hoja1!$A$6:$G$240;7;FALSO));"ID inexistente";BUSCARV($A4;[Libro2.xlsx]Hoja1!$A$6:$G$240;7;FALSO))
Bien, esta fórmula devolverá "ID inexistente"; si el código o nombre en la celda de búsqueda no existe en la columna correspondiente de la base que creaste. Pero, si lo encuentra, trae ese valor.
Para evitar ese #N/A! es que usé ESNOD() que es una función que devuelve verdadero si encuentra un error del tipo #N/A (NO Disponible) es decir que el dato no fue encontrado en la base de búsqueda. El condicional SI() es el encargado de mostrar un mensaje de error o el resultado según el caso.
Coméntame si resuelve tu situación -y, en tal caso, agradeceré que califiques mi contribución- o escribeme de nuevo aquí, si necesitas más apoyo con esto.
Un abrazo
Fernando
.