Uso avanzado de Buscarv

Tengo una base de datos donde la primera columna es el código de la empresa y la segunda es el código del empleado, después están el nombre y el rut. Necesito desarrollar la función Buscarv de forma mas compleja, hasta ahora había resuelto el problema complementándola con =SI, pero debido a que la base se modifica de forma semanal ya no me funciona. La idea es que la función encuentre el nombre y el rut según le solicite el código de empresa y empleado.
La planilla esta como sigue:
A:A = código empresa
B:B = código empleado
C:C = Nombre
D:D = RUT.
En la celda F2 ingreso el cod empresa, y en la G2 el cod empleado, en la H2 me arroja el nombre y en la H3 el RUT. Cuando la base estaba ordenada solucionaba el problema mezclando Buscarv con SI, pero a medida que la base se modifica, deja de funcionar.
¿Se puede crear una f Buscarv con 2 condiciones?, así podría poner como primera condición que busque el cod de empresa y como segunda el cod empleado y me arroje el resultado…

2 respuestas

Respuesta
1

Te mando la solución, sigue mis instrucciones:

Escribe esta fórmula en la celda H2:

=INDICE(C1:C11;COINCIDIR(F2&G2;A1:A11&B1:B11;0))

Escribe esta fórmula en la celda H3:

=INDICE(D1:D11;COINCIDIR(F2&G2;A1:A11&B1:B11;0))

¡¡¡ATENCION!!! las dos fórmulas son matriciales, es decir, para poder aceptarlas tendrás que pulsar CONTROL + SHIFT + ENTER.

Observa que en mi ejemplo el rango va desde la fila 1 a la 11. Es conveniente que acotes el rango correcto y no pongas B:B C:C... porque esto ocupa muchas más memoria a la hora de calcular.

No olvides finalizar la consulta

Hola, disculpa la demora…
La formula esta buena… funciona, pero se me presentan 2 inconvenientes, el primero es que si dejo la formula abierta, es decir que busque en toda la columna A:A, me devuelve #N/A, y no puedo dejar la matriz definida (A1:A244) porque la base se va aumentando casi todos los días. El segundo inconveniente es que cuando no encuentra la combinación me devuelve #N/A y si la pongo dentro de un SI.ESERROR para que devuelva “Código no encontrado” la función deja de funcionar….
Que puedo hacer…
Gracias de antemano

Te mando la solución. Con esta fórmula no te tienes que preocupar del rango puedes hacerlo crecer ya que la fórmula se adapta al nuevo rango y también funciona cuando no hay coincidencias escribiendo "no encontrado"

=SI.ERROR(INDICE(DESREF(D1;0;0;CONTARA(D:D));COINCIDIR(F2&G2;DESREF(A1;0;0;CONTARA(A:A))&DESREF(B1;0;0;CONTARA(B:B));0));"NO ENCONTRADO")

¡¡¡ATENCION!!! la fórmula es matricial por lo que para poder aceptarla tendrás que pulsar CONTROL + SHIFT + ENTER

Recuerda finalizar

agradezco tu preocupación, pero tampoco me funciona, me devuelve #¿NOMBRE?

de todas maneras quisiera insistir en la pregunta original, si puedo dar 2 condiciones a la función buscarv, ya que esa función la entiendo mejor

La función que te he mandado es correcta y está probada.

La función buscarv no tiene posibilidad de doble búsqueda por ese motivo te la he mandado con la función INDICE

Respuesta

Para usar la función BuscarV tendrías que agregar una columna donde concatenes A y B agregala en la columna C recorre las otras dos columnas y después ejecuta la función:

=BUSCARV(A1&B1,$C$1:$E$11, 2,0)

C es la columna donde concatenes las dos primeras y que servirá de búsquedaCheca y me dices que opinas, ya con ella la podrías personalizar, recuerda el rango de la base de datos lo tienes que limitar a la olumna agregada en adelante.

- Alejandro King

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas