excel - valores - Compruebe si el valor de celda existe en la columna y luego obtenga el valor de la celda SIGUIENTE
comparar dos celdas en excel y devolver un valor (3)
Después de verificar si existe un valor de celda en una columna, necesito obtener el valor de la celda al lado de la celda correspondiente . Por ejemplo, verifico si el valor en la cell A1
existe en la column B
, y suponiendo que coincida con B5
, entonces quiero el valor en la cell C5
.
Para resolver la primera mitad del problema, hice esto ...
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")
...Y funcionó. Luego, gracias a una respuesta anterior sobre SO , también pude obtener el número de fila de la celda coincidente:
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))
Entonces, naturalmente, para obtener el valor de la próxima celda, intenté ...
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))
... y no funciona.
¿Qué me estoy perdiendo? ¿Cómo añado el número de columna al número de fila devuelto para lograr el resultado deseado?
¿Qué tal esto?
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", INDIRECT(ADDRESS(MATCH(A1,B:B, 0), 3)))
El "3" al final significa para la columna C.
Después de la respuesta de t.thielemans , trabajé solo
=VLOOKUP(A1, B:C, 2, FALSE)
funciona bien y hace lo que yo quería, excepto que devuelve #N/A
para los que no coinciden; por lo que es adecuado para el caso en el que se sabe que el valor definitivamente existe en la columna de búsqueda.
Editar (basado en el comentario de t.thielemans):
Para evitar #N/A
para los que no coinciden, haz:
=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")
Use una función diferente, como VLOOKUP:
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))