EXCEL BUSCARV Buenas! Me estoy volviendo majara con la fórmula BuscarV para poder rellenar una columna con los datos de otro exc

Me estoy volviendo majara con la fórmula BuscarV para poder rellenar una columna con los datos de otro excel. Tengo dos archivos: uno es el listado donde aparecen los códigos y si son de laboratorio o industrial, y el otro archivo con las mismas referencias pero sin rellenar la columna de laboratorio o industrial. Mi idea era buscarv para rellenar los datos que hay en la columna del archivo 1 donde indica la clase del producto y que se rellene en el archivo 2 al cotejar el programa que es la misma ref en ambos archivos. ¿Me explico? Y me sale un churro.

3 Respuestas

Respuesta
2

Ya he visto que tienes resuelto el tema de la función BUSCARV, solo quiero aportar otra función más sencilla para contemplar posible error al no encontrar el valor buscado.

Si bien ESNOD, o ESERROR resuelven el problema, las nuevas versiones presentan otra más sencilla: SI. ERROR(función;valor si es error)

Para tu caso sería:

=SI.ERROR(BUSCARV(dato_a_buscar; rango de búsqueda; col a devolver; falso); "")

En el último argumento podés dejar vacío (""), un 0 o colocar un mensaje, por ej:

=SI.ERROR(BUSCARV(dato_a_buscar; rango de búsqueda; col a devolver; falso); "No existe código")

Respuesta
1

¿Podrías poner una imagen de como están los datos.?

Si el problema lo tienes al arrastrar la fórmula ¿Tienes en el buscarv el rango de la busqueda fijado con $ $:$ $?

Tengo hoja Ahlstrom donde salen todos los parámetros correctos y tengo hoj Filtrex donde he de rellenar los que hay en Ahlstrom. Ambos archivos tienen 5 columnas, de las cuales la tercera es GRUPO (laboratorio o industrial) Mi idea es que excel busque en el archivo Ahlstrom las coincidencias de referencias que salen en ambos archivos columna 1 (código artículo) y me rellene el campo 3 ( GRUPO) de la hoja de Filtrex y así no me vuelvo majadera poniendo uno a uno si es de laboratorio o industrial como hice con la hoja de Ahlstrom para más de mil referencias (fue mortal). Entonces la idea sería que excel basándose en la hoja de Ahlstrom, coteje las refs que salen en Filtrex y rellene los campos de la columna 3 (GRUPO)

Cómo procedo?

un abrazote grande y gracias por la sannnnnta paciencia

Pon en la hoja Filtrex, en el primer registro vacío debajo de Grupo la siguiente fórmula:

=BUSCARV(A2;Ahistrom!$A$1:$E$10;3;0)

Se interpreta así: en A2 de la hoja Filtrex están los códigos. Es, por tanto, el dato a buscar. ¿Dónde lo va a buscar?: En la hoja Ahistrom y dentro del rango A1 hasta E10. (Aquí debes poner desde el primer registro hasta el último de tu base de datos, incluídas las cabeceras p.e. A1:E1000 ). Cuando encuentre el dato, devolverá como resultado lo que hay en la columna 3.

Recuerda fijar todo el rango como está en la formula para que al copiarla hacia abajo no cambie.

Un saludo

te adjunto captura de pantalla con los dos listados para que veas lo que me indica la columna donde debería poner LAB o IND, y me sale REF... y más arriba la fórmula

A mi me va bien. Le daré una vuelta a ver si veo algo.

Te equivocaste al poner el rango de búsquedas. El rango de las busquedas debe ser el de toda la tabla, en tu caso desde $A$9:$E$343

No me ha escrito la primera línea. Decía así:

Que mal va esto.

Esto no era.

A ver si a la 4º:

Respuesta
1

.02/11/16

Buenos días, Elisenda

Ciertamente, lo que describes es la típica aplicación de la función BUSCARV(), sobre todo por la existencia de un ID común.

Para hacerlo simple, vamos a suponer que tu listado del libro 2 estuviese en la "Hoja1" y en el rango A6:G240.

Y si el primer ID a actualizar estuviera en la celda A4 de tu archivo a rellenar con el dato faltante, 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.

Esta fórmula creará un vínculo con el segundo archivo y, cuando abras ambos archivos, te actualizará el valor.

Entonces, la función Buscarv necesita tres argumentos más un cuarto opcional.

El primero es el valor que se busca en la base; ésta, 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.

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 2, para que traiga el dato de "clase del producto".

Eventualmente, 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 A4 no existe en la columna G de la base que creaste, pero si lo encuentra actualiza el valor

.

perfecta explicación pero no me aclaro. Lo desgloso porque me quedo atascada y prefiero darte info real, ya que algo me ha salido pero no el valor que yo buscaba. Especifico:

Tengo hoja Ahlstrom donde salen todos los parámetros correctos y tengo hoj Filtrex donde he de rellenar los que hay en Ahlstrom. Ambos archivos tienen 5 columnas, de las cuales la tercera es GRUPO (laboratorio o industrial) Mi idea es que excel busque en el archivo Ahlstrom las coincidencias de referencias que salen en ambos archivos columna 1 (código artículo) y me rellene el campo 3 ( GRUPO) de la hoja de Filtrex y así no me vuelvo majadera poniendo uno a uno si es de laboratorio o industrial como hice con la hoja de Ahlstrom para más de mil referencias (fue mortal). Entonces la idea sería que excel basándose en la hoja de Ahlstrom, coteje las refs que salen en Filtrex y rellene los campos de la columna 3 (GRUPO)

Cómo procedo?

un abrazote grande y gracias por la sannnnnta paciencia

.

Hola, Elisenda

Mejor así con datos más concretos.

Pero, mencionaste que tenías dos archivos, pero no mencionaste cómo se llama...

Si eventualmente todo esto ocurriera en el mismo archivo y el primer código a buscar estuviese en A4, deberías colocar en aquella tercera columna de Filtrex esta variante de la fórmula que te había compartido:

=SI(ESNOD(BUSCARV($A4;Ahlstrom!$A$4:$G$240;3;FALSO));"ID inexistente";BUSCARV($A4;Ahlstrom!$A$6:$G$240;3;FALSO))

Pero si realmente fuera en dos archivos, mantén ambos abiertos y coloca en esta fórmula el nombre de tal archivo reemplazando justo lo que escribí como TULIBROABIERTO.xlsx

(La extensión es importante):

=SI(ESNOD(BUSCARV($A4;[TULIBROABIERTO.xlsx]Ahlstrom!$A$4:$G$240;3;FALSO));"ID inexistente";BUSCARV($A4;[TULIBROABIERTO.xlsx]Ahlstrom!$A$6:$G$240;3;FALSO))

Luego copia esta celda y pegala en el resto de la columna para que traiga ese dato desde Ahlstrom, si estuviera.

Pruebala y dime si te satisfizo.

Saludos
Fer

.

Fer, te pongo pantallazo para que lo veas bien y ahí localizarás mi error en la fórmula

bss

.

Hola,

El problema es que el rango de búsqueda que le diste a tu fórmula está limitado a la columna A, solamente. Fijate que en mis fórmulas coloqué $A$6:$G$240

Entonces, para que funcione tu formula debería ser:

1.- Sin control de existencia:

=BUSCARV($A10;[ilistat preus Ahlstrom.xls]Hoja1!$A$10:$H$343;3;0)

2.- Con Control de Existencia:

=SI(ESNOD(BUSCARV($A10;[ilistat preus Ahlstrom.xls]Hoja1!$A$10:$H$343;3;0));"Code no exist";BUSCARV($A10;[ilistat preus Ahlstrom.xls]Hoja1!$A$10:$H$343;3;0))

(No distinguí si el archivo se llama ilistat... o llistat, tu verás)

Ahora debería funcionar OK.

Saludos
Fer

.

FUNCIONÓOO!! pero por qué pusiste 0 al final y no falso? 

mil gracias genio!

.

Bien! Me alegro de que te haya funcionado.

Puse 0 porque suelo hacerlo así. Da lo mismo poner FALSO, 0 ó incluso dejar vacío ese argumento.

=BUSCARV($A10;[ilistat preus Ahlstrom.xls]Hoja1!$A$10:$H$343;3;FALSO)

=BUSCARV($A10;[ilistat preus Ahlstrom.xls]Hoja1!$A$10:$H$343;3;0)

=BUSCARV($A10;[ilistat preus Ahlstrom.xls]Hoja1!$A$10:$H$343;3;)

Son equivalentes, darán el mismo resultado.

Saludos

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas