Como se relaciona dos archivos en excel

Me pregunto como puedo asociar dos archivos distintos dentro del excel para hacer lo siguiente:
Tengo 1 Tarifa de precios con códigos de artículos en una celda y el nombre del articulo correspondiente en otra celda. Pues bien, el tema esta en como hacer en otro archivo (Facturación)hacer aparecer el nombre del articulo en una celda con tan solo poner el código en la anterior.
No se si esto se puede hacer en excel, pero aparte, cuando se introduzca el código, saber si es posible que saliera una ventanita con los códigos anteriores y posteriores al que yo he tecleado. Esto es por si el código puesto de memoria no coincide con el articulo que yo realmente quiero facturar.

6 Respuestas

Respuesta
1
Te voy a responder la pregunta por partes a medida que vaya viendo por donde te sale mejor la solución pues si te respondo las dos preguntas con todas las opciones escribiría más o menos unas tres hojas de texto y de pronto te confundo.
Lo primero que pides lo puedes hacer con la siguiente fórmula que debes copiar en la celda B2 del libro donde quieres que aparezcan los nombres de los productos (los datos base pueden estar en otro libro o en el mismo libro en una hoja que también puede estar oculta) sólo debes modificar las referencias
=SI(A2="","",SI(ESERROR(COINCIDIR(A2,LISTADO,0)),"REVISE EL CÓDIGO",BUSCARV(A2,LISTA!$A$2:$B$228,2,0)))
LISTADO se refiere a un rango de la hoja en donde sólo se encuentran los códigos sin los nombres de los productos y la referencia LISTA! $A$2:$B$228 se debe a que hice el ejemplo con una hoja denominada LISTA del mismo libro.
En cuanto a la lista desplegable me parece un poco complicado pues habría que hacerlo por macro (si se puede) pero me parece más fácil obtener una lista desplegable con todos los códigos de manera que si la memoria te falla buscas en ella el código que necesitas y listo. Esto se logra por el menu datos por la opción validación seleccionando el "Permitir" lista y seleccionando el rango de los códigos.
Me cuentas como te parece mejor y miramos a ver como lo solucionamos.
Respuesta
1
En lo relacionado con la primera parte de tu consulta la solución seria una búsqueda vertical. La fórmula a utilizar es BUSCARV, el asistente de funciones de excel(fx) en la barra de herramientas te guiara paso a paso.
La segunda parte de tu consulta no pude entenderla, si pudieras ser más claro...
Gracias por tu interés. La parte que no entendies es lo siguiente.
Cuando yo introduzca en la celda donde quiero que me aparezca el articulo, lo que quiero saber es si puede salir un pequeño listado de unos 10 códigos que correspondan con los cercanos al que yo he puesto en esa celda.
Ejemplo: si yo tecleo como código de articulo "120" y no estoy seguro que sea el que corresponde a las patatas, quiero que se despliegue una ventanita y me salgan entre el 115 y el 125 para yo pinchar en el que quiero poner.
El articulo debe salir en la celda de al lado (derecha).
El proceso que voy a sugerir implica que la lista de códigos posibles estén en una columna dentro de la misma hoja de calculo donde capturas el nombre a través del código con la búsqueda vertical (BUSCARV). Puedes ponerla en un sitio no visible de tu área de trabajo.
Luego selecciona la columna donde escribes el código a buscar, y teniéndola seleccionada entra a Datos/Validacion...
Aparecerá una ventana pequeña, en el item "Permitir:" elige lista y selecciona el rango completo de la columna donde se encuentra la lista completa de códigos posibles.
Terminado el proceso veras una pestañita en el lado derecho de la celda activa que te permitirá ver los código más cercanos al que estas digitando.
Recuerda que debes también utilizar la búsqueda vertical para lograr lo que quieres.
Respuesta
1
Para resolver lo que solicitas MS Excel proporciona la función BUSCARV que, usualmente, se usa en el mismo archivo pero funciona igualmente cuando la base de datos estuviera en otro archivo. Bastará que le indiques la dirección de tal archivo.
Deberás tener una tabla que indique el nombre para cada código de artículo que deberá estar en la primer columna de la tabla(1). Y supondré que tal nombre está en la columna siguiente (2).
A modo de ejemplo esta tabla estará en el rango G4:H60 de la "Hoja2" de un archivo llamado "Tarifas". Este archivo estará ubicado en la carpeta "Mis Documentos"
Supongamos también que el código cuyo nombre deseas mostrar está en la celda A2. En el archivo de Facturación, escribe en la celda B2 (donde quieres ver le precio) la siguiente fórmula:
=BUSCARV($A2,'C:\Mis Documentos\[Tarifas.xls]Hoja2'!$G$4:$H$60,2,FALSO)
[Considera si sueles usar comas o punto y coma para separar argumentos de las funciones. Yo usé ","]
Si quieres mejorarla con un control de existencia, puedes usa esta que es similar:
=SI(ESNOD(BUSCARV($A2,'C:\Mis Documentos\[Tarifas.xls]Hoja2'!$G$4:$H$60,2,FALSO)),"No existe en Base",BUSCARV($A2,'C:\Mis Documentos\[Tarifas.xls]Hoja2'!$G$4:$H$60,2,FALSO))
Bien, esta fórmula devolverá "No existe en Base"; si el código en la celda B2 no existe en la columna G 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 uno u otro mensaje según el caso.
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
A cambio de mi tiempo, sólo te pido dos cosas:
- Finaliza (con puntaje y comentario) esta pregunta
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás.
Recientemente me enteré de que TodoExpertos.com no avisaba de que las preguntas habían sido contestadas. Tal vez este haya sido tu caso.
Además, he notado que estoy inhabilitado para recibir preguntas, probablemente porque tenga muchas preguntas sin finalizar.
Por favor, no te ofendas, pero entre ellas, está ésta, la tuya. ¿Serías tan amable de finalizarla para que otros puedan consultarme?
Respuesta
1
Se puede hacer, pero en Excel es recomendable tener una hoja de Precios y otra de Facturación. En caso que los archivos tengan que ser distintos:
1) Un archivo en Hoja1 de Precios:
1 articulo1 precio1
2 articulo2 precio2
3 articulo3 precio3
2) Un archivo en Hoja1 de Facturación:
En la primer columna un nro de código (el 1er arg. De la función BUSCARV, y en la columna derecha:
=BUSCARV(A1,[Precios.xls]Hoja1!$A$1:[Precios.xls]Hoja1!$B$3,2,FALSO)
Tienen que estar los dos archivos abiertos.
Para el segundo punto de la pregunta hay que realizar un desarrollo en VBA, en donde tomas la referencia absoluta del dato buscado, luego en dos variables tomas una posición anterior y posterior y las muestras en los cuadros de texto que diseñes.
Respuesta
1
Magonisl,
hola! Te cuento que lo que pides se puede hacer de manera muy simple.
Supongamos que el archivo que contiene el catálogo de artículos se llama "Artículos.xls".
En el otro libro, puedes recuperar la información con la función BUSCARV (VLOOKUP en inglés), de la siguiente manera:
Esta es la tabla de artículo, y supone que le has puesto a este rango el nombre "Catalogo"
Art Nombre
1 Articulo 1
2 Articulo 2
3 Articulo 3
En el otro archivo, suponiendo que en A1 vas a escribir el número de articulo y en A2 quieres el nombre del mismo, en A2 deberías escribir esta fórmula:
=BUSCARV(A1;'C:\Windows\Escritorio\Articulos.xls'!Catalogo;2;FALSO)
Donde A1 tiene el nombre del articulo a buscar en el rango "catalogo" del archivo Artículos, y siendo el dato a devolver el que esta en la 2da columna de la tabla.
Pídeme más ayuda si no se entendió, o te mando un archivo de ejemplo. O investiga la función BUSCARV que es la que te viene útil para el caso.
Respuesta
1
Lo que he entendido es que quieres relacionar 2 libros en uno tienes los códigos y nombres y en el otro vas a digitar los códigos y deseas que aparezca el nombre, si es así lo que necesitas es utilizar la función BUSCARV
donde quieres que te aparezca el nombre debes poner
=buscarv("la celda que contiene el codigo","la matriz donde se encuentran todos tus datos (en este caso en el otro libro)","el numero de columna que quieres que te devuelva (como es el nombre ponemos (2)",falso)
tu formula quedaria algo asi
=BUSCARV(B1,'C:\WINNT\Profiles\profesores\Desktop\[Libro2.xls]Hoja1'!$A$1:$B$5,2,FALSO)
'C:\WINNT\Profiles\profesores\Desktop es la direccion donde se encuentra ubicado mi libro2 que contiene todos los datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas