Problemas al buscar datos

Tengo datos de esta manera:
Utilizo un formato para llenarlo con datos que tengo guardados, cuando lleno datos de una persona por, lo hace bien con los datos ubicados en forma horizontal utilizo la función buscarv
ningún drama, como busco más datos que estén ordenados en filas. Ejemplo
rut nombre hijos
1 juan r. Ana
1 juan r. Diego
Al hacer la búsqueda con buscarv por 1 me arroja juan r. Ana pero como logro
juan r. Ana
diego

1 Respuesta

Respuesta
1
Me están faltando datos respecto al diseño de tu hoja. Supongo que la base de datos tiene cantidades irregulares de registros para cada persona.
En tu ejemplo JUAN R. tiene dos registros, pero PEDRO T puede tener más de dos o uno solo, y así con el resto.
Esto complica bastante la búsqueda respecto a una base con idéntica cantidad de entradas por cada persona.
De todos modos podríamos intentar una solución:
Una combinación de las funciones INDICE y COINCIDIR funcionan en forma similar al BUSCARV. Pero en el caso que planteas -creo- sería la solución a tu problema.
Vale decir que, si la función COINCIDIR encuentra el valor buscado (JUAN R.) en la primer columna traerá los datos en cada línea de acuerdo a la fila donde la fórmula se encuentre.
Tal fórmula sería como esta:
=INDICE(Hoja2!$C$5:$G$20,COINCIDIR($I$5,Hoja2!$C$5:$C$20,0)+FILA()-FILA($I$5),COLUMNA()-COLUMNA($I$5)+1)
Está fórmula copiada en las celdas posteriores traerá los datos como quieres, pero adolece de un problema, necesitas saber de antemano cuántos registros tienes para el que estas buscando y contar con una cantidad igual de líneas de fórmulas de búsqueda.
Para evitar ese problema, la siguiente fórmula agrega un control:
=SI($I$5=INDICE(Hoja2!$C$5:$G$20;COINCIDIR($I$5;Hoja2!$C$5:$C$20;0)+FILA()-FILA($I$5);1);INDICE(Hoja2!$C$5:$G$20;COINCIDIR($I$5;Hoja2!$C$5:$C$20;0)+FILA()-FILA($I$5);COLUMNA()-COLUMNA($I$5)+1);"")
INDICE muestra un dato de una matriz (C5:G20 de la hoja2) de acuerdo a las coordenadas de fila y columna que se le indique como argumentos.
Para obtener la coordenada Fila usamos la función COINCIDIR en un rango (C5:C20 de Hoja2) de la misma altura (misma cantidad y ubicación de las líneas) que la base de búsqueda. Al número de fila así obtenido le agregará tantas líneas como diferencia halla entre la fila donde está la fórmula y la fila donde está el dato a buscar. Así, si la fórmula estuviera en la misma fila que el dato, tal diferencia será cero y, por lo tanto, traerá el dato de la misma fila.
Al copiar esta celda y pegarla en la fila inferior, la diferencia será 1, por lo tanto traerá el valor de la fila siguiente de la base original. Y así sucesivamente.
De igual modo, para identificar de qué columna traer el dato, restará la columna actual menos la primera.
De esta manera, la misma fórmula copiada al resto del rango donde debe traer los valores servirá al propósito sin tener que modificarla.
El control que le agregué, verifica que en cualquier fila que se esté buscando se trate de la misma persona que se buscó originalmente.
Lo único que tendrás que tener en cuenta es tener una cantidad de lineas de esta fórmula de búsqueda igual al mayor número de registros que pueda tener una persona.
Por ejemplo, supongamos que buscar los datos de los hijos de cada empleado. Si hubiera un fecundo con 10 hijos, tendrás que tener 10 filas con aquella fórmula que te sugerí. Para los que tengan menos de 10, las celdas excedentes no mostrarán nada. Pero si hubiera uno con once o doce, sólo mostrará hasta el décimo.
Por último, si -eventualmente- necesitaras otro set de estas fórmulas para buscar otro código en otro rango de la hoja "Datos" necesitarás, primerro quitarle la referencia absoluta a la celda donde está e primer código (I5).
Nota que, apropósitamente, todas las referencias a la linea del código dicen $I$5 de forma tal que siempre lean esa celda a cada uno de sus efectos.
Lo que suelo hacer, entonces, es seleccionar todo el rango de fórmulas (4 columnas por 8 filas) y hago "Edición" | "Reemplazar..." En la casilla Buscar: coloco $I$5 y en la de reemplazar con escribo I5. Finalmente presiono "Reemplazar todo"
Si bien todas las fórmulas modificadas siguen "apuntando" a la celda I5, esta es ahora una referencia relativa a tal celda. Esto permite que al copiarlas a otro rango lean una posición distinta a I5.
Por ejemplo, si tu otro código a buscar estuviera en la celda I14 y copias este set de fórmulas a partir de esa misma fila, todas leerán los datos de la celda I14.
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas