Tengo una Base de datos (access) con dos campos, digamos "NUMERO PEDIDO" Y "DESCRIPCION", quiero que en una hoja excel, en función del NUMERO DE PEDIDO que ponga en una celda, en la de la derecha obtenga de la base de datos el campo DESCRIPCIÓN. Utilizando Microsoft Query puedo hacer una consulta dando un criterio de búsqueda con un valor constante, pero no se como introducir un criterio de búsqueda que sea variable, es decir, =A2 por ejemplo y que utilice el valor de la celda A2 como criterio de búsqueda del registro en la base de datos. ¿Cómo puedo hacer esto?
1 respuesta
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Fajardo Para lograr lo que te propones, básicamente, deberás utilizar la función BUSCARV sobre la base de Access que será obtenida por MS Excel Para ello, primero deberás crear un vínculo activo con tal base de datos. El proceso inicial dependerá de qué versión de Office utilices. Hasta la versión 97 este tipo de vínculos se realizaba a través del protocolo ODBC. Las versiones posteriores utilizan DAO. Personalmente, tengo la versión vieja por lo tanto te explico su proceso a continuación, de todos modos la idea te servirá en caso de que tuvieses una versión posterior: En el archivo donde quieres colocar el vínculo, haz: -Datos -Obtener Datos Externos -Crear nueva consulta... Internamente, esto activará el Microsoft Query. En la ventana de diálogo se listan los tipos de Fuente de datos disponibles y, en la otra solapa, las consultas que tu pudieras tener grabadas. Pero como esto es una consulta nueva, busca el driver de MS Access o el del motor de base de datos que utilices habitualmente. Luego, deberás indicarle cuál es la base de datos MDB que quieres vincular. El cuadro de diálogo siguiente te propondrá los nombres de los campos disponibles en esa tabla para que selecciones aquellos que te interesen para tu trabajo. Pueden ser todos o sólo algunos. Si el nombre de la pieza será tu campo clave de búsqueda asígnale el primer lugar en la tabla. Evita que el campo automático Id (identificación interna) sea transferido a la consulta. En tu caso particular pareciera que serán útiles todos Los pasos siguientes te permitirán aplicarle filtros para seleccionar determinados registros de la tabla y, luego, asignarle un orden. Finalmente, elegirás la ubicación en tu archivo MS Excel de la tabla vinculada y es aconsejable que le des un nombre que recuerdes fácilmente (ej TablaProd) utilizando el botón Propiedades. Una vez creado el vínculo tendrás una tabla llamada TablaProd que podrás usar como un nombre de rango y acceder a él con las funciones standard de Búsqueda (Buscarv, Coincidir, Indice, etc.) Como planteaste, NUMERO de PEDIDO cuya DESCRIPCIÓN deseas mostrar está en la celda A2, escribe en la celda D2 (donde quieres ver la descripción) la siguiente fórmula: =BUSCARV(A2,TablaProd,2,FALSO) [Considera si sueles usar comas o punto y coma para separar argumentos de las funciones. Yo usé ","] Asígnale el formato deseado y, luego, copia esta celda y pégala en donde te sea necesario. Así obtendrás la descripción del número de pedido indicado en la celda. Si quieres mejorarla, puedes usa esta que es similar: =SI(ESNOD(BUSCARV(A2,TablaProd,2,FALSO)),"No existe en Base",BUSCARV(A2,TablaProd,2,FALSO)) Bien, esta fórmula devolverá "No existe en Base"; si el código o nombre en la celda A2 no existe en la columna inicial de la base que creaste. Finalmente aclaro que ESNOD() 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 el mensaje o la producción, según el caso. Esto debería resolver tu pregunta. Si así fuera, agradeceré un comentario y que la finalices. (Recuerda que mantener cierto número de respuestas pendientes impide que otros usuarios puedan consultarme) Aclarando qué entendí mal o qué faltó.