Hola Paco Megía y compañeros excelianos:
Cada mes he de introducir datos de clientes: Nombre, CIF, Concepto que siempre son los mismos cliente a cliente. Por lo tanto lo ideal sería que poniendo el nombre del cliente, se extraiga de la base de datos el resto de la información y aparezca automáticamente.
Adjunto una tabla que facilita la pregunta:
A | B | C | D | E | F | G | H | I | |
1 | BASE DE DATOS DE CLIENTES | ||||||||
2 | CLIENTE | CIF | Concepto | Cliente | CIF | Concepto | |||
3 | Antonio | 123 | Mantenimiento | Antonio | |||||
4 | Juan | 456 | Servicios | ||||||
5 | Rafael | 789 | Alquiler | ||||||
6 | Francisco | 135 | Mantenimiento | Lo que pretendo es: | |||||
7 | Manuel | 246 | Suministros | Que cuando escriba Antonio en E3, aparezca | |||||
8 | Lucas | 378 | Herramientas | en F3 su CIF (123) y en G3 su Concepto (Mantenimiento) | |||||
9 | Jose | 974 | Jardineria | Y así para cada cliente: Juan, Rafael, etc | |||||
10 | Son datos (CIF) y (Concepto) que tengo en la base de datos en | ||||||||
11 | las columnas A B y C | ||||||||
12 | Estoy preguntando por las Formulas a utilizar en F y G |
Muchas gracias anticipadas
Jose
Sería utilizando la mejor función de Excel: BUSCARV
EN la casilla del CIF tendrías que poner:
=BUSCARV(E3;A$3:C$9;2)
Y en la del concepto:
=BUSCARV(E3;A$3:C$9;3)
Estas fórmulas las podrías arrastrar por toda la columna.
No obstante, te recomiendo que lo organices de otra manera. Los nombres se repiten (hay 2 que se llaman Antonio García), se pueden escribir mal, con 2 apellidos o con uno... Sin embargo, el CIF es un número único, unívoco y fácilmente corregible si se escribe mal. Lo que te propongo es que al escribir el CIF se rellenen todos los demás datos. En este caso, en la tabla de datos la primera columna debería ser el CIF.
Un saludo
Muchas gracias Cron:
Tines razón, sin embargo lo más engorroso es el CIF y donde más posibilidad hay de error. Estaba pensando utilizar una nueva columna con mera numeración, 1,2,3, etc. de manera que queden numerados los clientes del 1 al 50, que no son más para cada cliente, y así sería incluso más facil teniendo la base de datos en la misma hoja y a la vista.
Muchas gracias por tu aportación
Saludos
Jose
Jose
Otra cosa que puedes hacer es utilizar la validación de celdas, y seleccionar los datos de un desplegable en vez de teclearlos.
Hola Cron,
El problema me surge en las celdas que contienen la formula de BUSCARV cuando trato de ordenar alfabeticamente la base de datos. Al ordenar alfabeticamente selecciono ambas columnas, y no entiendo dónde está el fallo.
Muchas gracias
Jose
¿Podrías adjuntar una hoja con datos falsos? Así puedo revisar qué pasa
Un saludo
Hola Cron,
Te adjunto el excel. En el documento está la explicación del problema.
Un saludo y muchas gracias.
Jose
Ok, ya sé lo que te pasa.
La función BUSCARV tiene un último parámetro que puede ser VERDADERO o FALSO. Con esto le indicas si la lista está ordenada o no. Esta explicación, que es la que da la ayuda de Excel es "poco explicativa".
En realidad, cuando buscas un número y la lista está ordenada, Excel te responde con el valor de la columna que hayas seleccionado que coincide con el número inmediatamente inferior al que tú estás buscando. Por ejemplo:
Si ponemos esta tabla, imagina una orden BUSCARV en la que buscamos 3,5. El resultado (si el último valor es VERDADERO) sería C.
En el caso de que el último valor fuera FALSO, el resultado sería un error #N/A, porque el valor 3,5 no se encuentra en la primera columna.
Si en vez de número fuera un dato alfanumérico, ocurre lo mismo ordenándose alfabéticamente.
Tu problema es que al ordenar por nombre, en realidad estás "desordenando" el índice de la primera columna. Tu segundo problema es que al no haber introducido el último parámetro, Excel toma por defecto VERDADERO.
Por eso, cuando lo que tienes es esto:
Cuando buscas el 5, lo localiza bien porque la lista está ordenada y te devuelve "Rafael"
Sin embargo, al reordenarla por nombre, tendrás esto:
La función BUSCARV debe buscar desde el final hacia arriba. De esta manera, si buscas el 6, empieza por el último, ve que es 4, por lo que lo considera el "inmediatamente inferior" y no busca más. Esto es porque le has dicho (o no se lo has dicho explícitamente, pero lo ha entendido por no poner nada) que la lista está ordenada por números.
Si buscas el 5, empieza por el final, ve el 4 y asume también ese valor.
Si buscas el 2, empieza por el final, y como el 4 es mayor que 2, sigue buscando. El siguiente es el 5, y el siguiente el 3, que son mayores. El siguiente es exactamente el 2, y por eso te devuelve el resultado correcto.
¿Cómo se soluciona esto?
Añádele al final el parámetro FALSO para que busque la coincidencia exacta.
Ejemplo:
=BUSCARV(E4;$B$4:$C$18;2;FALSO)
Un saludo
Muchisimas gracias Cron, la duda está resuelta.
Un saludo
Jose