.19.04.17
Buenas tardes, Raziel
Me parece que 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 estuviese en la "Hoja1" y en el rango B2:D290. Algo así como esto:
Y si el primer ID a actualizar estuviera en la celda A4 de tu archivo reportemaestro.xls, escribe ésta fórmula en la celda B4 :
=BUSCARV($A4;Hoja1!$B$2:$D$290;2;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 (B2:D290 en el ejemplo)
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!$B$2:$D$290
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 2. Para que traiga el dato de "Rubro" lo cambiaríamos a 3 y así con los otros que hubiere. Si pegas esta misma fórmula en otra celda y cambias el número de columna, traerá lo que halla 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;Hoja1!$B$2:$D$290;2;FALSO));"ID inexistente";BUSCARV($A4;Hoja1!$B$2:$D$290;2;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.