Verifique si el valor de la celda existe en la columna y luego obtenga el valor de la celda siguiente


89

Después de verificar si existe un valor de celda en una columna, necesito obtener el valor de la celda junto a la celda correspondiente . Por ejemplo, verifico si el valor en cell A1existe en column B, y suponiendo que coincida B5, quiero que el valor en 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 en SO , también pude obtener el número de fila de la celda correspondiente:

=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 siguiente 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 agrego el número de columna al número de fila devuelto para lograr el resultado deseado?

Respuestas:


99

Utilice una función diferente, como BUSCARV:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))

1
¡Gracias! ¡Esto también funciona! Y creo que sería mejor usar en VLOOKUP(A1, B:C, 2, FALSE)lugar de usar un rango fijo (para acomodar una matriz de búsqueda creciente).
— SNag

1
Sí, usé este rango fijo como prueba. Lo edité en mi respuesta.
— CustomX

No es necesario IFERRORaquí. Funciona bien sin él, porque BUSCARV solo se ejecuta si hay una coincidencia.
— SNag

¡Ups! Parece que he estado probando en la columna incorrecta: P De hecho, sin IFERROR, también funciona perfectamente: P
— CustomX

3
Esto es más antiguo que viejo, pero solo quería decir que lo he estado usando durante años y realmente me molesta que nunca hayas recibido la mejor respuesta. Me encanta que hace que la tabla sea escalable para comparar varias columnas.
— DuffDuff

36

Después de la respuesta de t.thielemans , trabajé que solo

=VLOOKUP(A1, B:C, 2, FALSE) 

funciona bien y hace lo que quería, excepto que vuelve #N/A para no coincidencias; por lo que es adecuado para el caso en el que se sabe que el valor existe definitivamente en la columna de búsqueda.

Editar (basado en el comentario de t.thielemans):

Para evitar #N/Aque no coincidan, haga:

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")

3
Use esto en su lugar IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). También agregué esto a mi respuesta. 0 es el valor que desee :) (usar esto en el código conducirá a No Match si no se encuentra ninguna coincidencia;)
— CustomX

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.