Buscar en un rango con valores repetidos

7 envíos / 0 nuevos
Último envío
Mundo Fútbol
Imagen de Mundo Fútbol
Offline
última acción: Hace 7 años 3 meses
alta: 29/08/2017 - 23:02
Puntos: 55
Buscar en un rango con valores repetidos

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

Cron
Imagen de Cron
Offline
última acción: Hace 1 año 4 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Puedes hacer dos cosas. La

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

Mundo Fútbol
Imagen de Mundo Fútbol
Offline
última acción: Hace 7 años 3 meses
alta: 29/08/2017 - 23:02
Puntos: 55
Lo pruebo y te comento

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

Cron
Imagen de Cron
Offline
última acción: Hace 1 año 4 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
La primera columna tiene que

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

Mundo Fútbol
Imagen de Mundo Fútbol
Offline
última acción: Hace 7 años 3 meses
alta: 29/08/2017 - 23:02
Puntos: 55
Satisfacción por las ayudas

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

Cron
Imagen de Cron
Offline
última acción: Hace 1 año 4 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Lo que yo hago es convertir

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

Mundo Fútbol
Imagen de Mundo Fútbol
Offline
última acción: Hace 7 años 3 meses
alta: 29/08/2017 - 23:02
Puntos: 55
Gracias por responder

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