Controlla se il valore della cella esiste nella colonna, quindi ottieni il valore della cella SUCCESSIVA


89

Dopo aver verificato se esiste un valore di cella in una colonna, è necessario ottenere il valore della cella accanto alla cella corrispondente . Ad esempio, controllo se il valore in cell A1esiste in column Be, supponendo che corrisponda B5, allora voglio il valore in cell C5.

Per risolvere la prima metà del problema, ho fatto questo ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")

... e ha funzionato. Quindi, grazie a una precedente risposta su SO , sono stato anche in grado di ottenere il numero di riga della cella corrispondente:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))

Quindi, naturalmente, per ottenere il valore della cella successiva, ho provato ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))

... e non funziona.

Cosa mi sto perdendo? Come aggiungo il numero di colonna al numero di riga restituito per ottenere il risultato desiderato?

Risposte:


99

Usa una funzione diversa, come CERCA.VERT:

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

1
Grazie! Funziona anche questo! E penso che sarebbe meglio usare VLOOKUP(A1, B:C, 2, FALSE)invece di usare un intervallo fisso (in modo da ospitare un array di ricerca in crescita)?
Snag

1
Sì, ho usato questo intervallo fisso come test. Modificato nella mia risposta.
CustomX

Non hai bisogno di IFERRORqui. Funziona bene senza di esso, perché il CERCA.VERT viene eseguito solo se c'è una corrispondenza.
Snag

Ops! Mi sembra di aver testato nella colonna sbagliata: P In effetti senza IFERROR funziona perfettamente anche: P
CustomX

3
È più vecchio che vecchio, ma volevo solo dire che lo uso da anni e mi infastidisce davvero il fatto che non ti sia mai stata data la risposta migliore. Mi piace il fatto che renda la tabella scalabile per il confronto di più colonne.
DuffDuff

36

Dopo la risposta di t.thielemans , ho lavorato proprio su questo

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

funziona bene e fa quello che volevo, tranne per il fatto che ritorna #N/Aper non corrispondenze; quindi è adatto al caso in cui è noto che il valore esiste sicuramente nella colonna di ricerca.

Modifica (basato sul commento di t.thielemans):

per evitare #N/Adi non corrispondere, fai:

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

3
Usa questo invece IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). Ho anche aggiunto questo alla mia risposta. 0 è il valore desiderato :) (utilizzare questo nel codice porterà a Nessuna corrispondenza se non viene trovata alcuna corrispondenza;)
CustomX

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.