Buenas tardes.
Estoy trabajando en un archivo, donde necesito buscar datos, pero se repiten en el rango. Ejemplo
A B C D
Matricula Año Codigo Personal Nombre
0001 2015-2016 J0001 PEDRO
0002 2015-2016 J0002 CARLOS
0003 2015-2016 J0003 ALBERTO
0001 2016-2017 J0002 CARLOS
0002 2016-2017 J0003 ALBERTO
0003 2016-2017 J0001 PEDRO
0001 2017-2018 J0001 PEDRO
0002 2017-2018 J0003 ALBERTO
0003 2017-2018 J0002 CARLOS
Necesito buscar por el codigo personal y me de sus valores.
Utilizando la formula buscarv, me sale solo el primer dato encontrado ejemplo 2, me sale el primer dato que no es lo que necesito
Espero haberme hecho entender y desde ya, muchas gracias por vuestra ayuda
Puedes hacer dos cosas. La más compleja es jugar con fórmulas matriciales y la función K.ESIMO.MENOR. Pero creo que lo tuyo es más sencillo si, en vez de buscar por código personal, buscas por la concatenación de Código personal y año.
En vez de utilizar:
=BUSCARV("J0001";C1:D10;2;FALSO)
Haz lo siguiente:
1- Crea una columna auxiliar, por ejemplo en la columna D desplazando la columna nombre a la E.
2- En esa columna auxiliar concatena los valores Año y Código personal. Ahora la columna auxiliar es un código que no se repite
3- Utiliza BUSCARV, pero buscando el año de matrícula concatenado con el código personal.
Es importante que tengas cuidado con los espacios antes y después de las palabras.
Por ejemplo, si en H2 ponemos el año y en I2 el código que queremos buscar, tendríamos algo así:
=BUSCARV(H2&I2;D1:E10;2;FALSO)
Un saludo
Muchas gracias por responder.
Voy a realizar las pruebas y te comento que tal fue.
Me asoma una duda, así de primeras.
Con la formula buscarv, la matriz desde donde debe empezar desde el dato a buscar (ejemplo: columna D, aquí se busca lo concatenado), para que me dé una respuesta de columna hacia su derecha; pero si quiero que me muestre las matrículas de la izquierda de cada código?.
Como tendría que plantear la matriz.
Gracias de antemano
La primera columna tiene que ser siempre el valor que estás buscando. El resultado tiene que estar siempre hacia la derecha.
Por lo tanto, si pones la columna auxiliar en D y la de los datos a devolver en E, deberías tomar como rango D:E
Un saludo
He probado la propuesta de CRON, y funcionó a la perfección, además de quedar claro la necesidad de ordenar la matriz con el valor buscado al inicio de la misma.
No sé, si se podrá realizar otra pregunta en este mismo hilo o abro otra pregunta nueva.
Por si acaso la hago y si no es lo correcto, pido disculpas.
He creado un userform con un cuadro de lista; lo que necesito es que se actualice automáticamente el cuadro de lista con la información que estoy ingresando, ya que la misma se guarda en la hoja2.
Muchas gracias
Un saludo
Lo que yo hago es convertir el rango de datos en una tabla (Ctrl + T o menú Insertar/Tabla). En el desplegable hay que cambiar la referencia en el valor Rowsource. Edita este valor y añade lo siguiente:
NombredeTabla[NombredeColumna]
Para conocer el nombre de la tabla, simplemente pincha en cualquier celda de la tabla, y en el menú selecciona Herramientas de Tabla/Diseño. En la parte de la izquierda de la banda te aparece el nombre de la tabla y lo puedes cambiar.
El nombre de la columna es el nombre que aparece en el encabezado de la columna. Si, por ejemplo, la tabla se llamara Tabla1 y la columna se llamara "Id", entonces lo que hay que poner en el valor Rowsource es:
Tabla1[Id]
De esta manera, al añadir filas a la tabla, estos datos se añaden automáticamente a tu desplegable sin que haya que hacer nada más.
Un saludo
Nuevamente Cron, muchas por tomarte el tiempo y responder a mi pregunta.
En este caso, no es lo que necesito; ya que pretendo es los códigos vba para poder "mostrar" en un cuadro de lista todos los nombres inscritos que se van guardando en otra hoja.
Gracias de antemano