Tengo dos tablas de Excel diferentes. una columna de la tabla contiene el nombre del empleado y otra tabla contiene varios nombres en una celda y sus otros valores. Por ejemplo.
primera mesa
Juan
Pablo
Pedro
Akash
Sam
Segunda mesa
Shea, John, Akash
Akash, Peter, Paul
Peter, John, Sam
Ahora quiero buscar por nombre en la segunda tabla y devolver Sí o No.
Respuesta1
No estoy realmente seguro de haber entendido correctamente su pregunta. Asumiré que:
- La primera tabla contiene un nombre por celda.
- La segunda tabla siempre usa "," como separador
- Desea verificar si el primer nombre de cada línea en la segunda tabla está en la primera tabla (devuelve VERDADERO) o ni (devuelve FALSO).
Si ese es el caso, esto debería funcionar:=NOT(ISERROR(VLOOKUP(LEFT(B1;SEARCH(",";B1)-1);$A$1:$A$5;1;FALSE)))
Explicado de adentro hacia afuera:
- Primero busco el "," (
SEARCH
me da la posición del primer ",""). - Luego tomo la cuerda que queda a la izquierda (
LEFT
). - Busco esa cadena (
LOOKUP
) en una tabla y solicito que coincida exactamente (el últimoFALSE
argumento). - Si falla, devuelve un error, por lo que lo comprobaremos (
ERROR
devolverá VERDADERO si elLOOKUP
resultado es un error). - Realmente queremos saber si se encuentra que es un error, así que paso de VERDADERO a FALSO y viceversa usando
NOT
.
Con alguna "prueba":