2010-05-19 3 views
5

In Excel abbiamo la funzione VLOOKUP che cerca un valore in una colonna in una tabella e quindi restituisce un valore da una data colonna in quella tabella se trova qualcosa. In caso contrario, produce un errore.Excel: CERCA.VERT che restituisce vero o falso?

Esiste una funzione che restituisce true o false a seconda se il valore è stato trovato in una colonna oppure no?

risposta

10

Si potrebbe avvolgere la VLOOKUP() in un IFERROR()

Edit: prima di Excel 2007, utilizzare =IF(ISERROR()...)

+0

Credo che si intende IFERROR() –

+1

mea culpa - mea mistypo –

+0

Grazie per la modifica BradC, mi mancava il tag Excel2003 –

1

Abbiamo sempre usato un

if(iserror(vlookup,"n/a",vlookup)) 

Excel 2007 ha introdotto IfError che ti permette di fare il vlookup e aggiungere output in caso di errore, ma questo non ti aiuta con il 2003 ...

+0

No: p – Svish

+0

Così vicino a -1 .... OP era chiaro questa domanda era intesa per xl2003 – brettdj

+0

eccetto che la mia risposta è per xl2003, con alcune informazioni aggiuntive su xl2007 –

6

Devi ancora avvolgerlo in un ISERROR , Ma è possibile utilizzare MATCH() invece di VLOOKUP():

Restituisce la posizione relativa di un elemento in una matrice che corrisponde a un valore specificato in un ordine specifico. Utilizzare MATCH invece di una delle funzioni LOOKUP quando è necessaria la posizione di un articolo in un intervallo anziché l'elemento stesso.

Ecco un esempio completo, supponendo che stai cercando la parola "chiave" in un intervallo di celle:

=IF(ISERROR(MATCH("key",A5:A16,FALSE)),"missing","found") 

Il FALSE è necessario forzare una corrispondenza esatta, altrimenti si cercherà il valore più vicino.

6

Basta usare un COUNTIF! Molto più veloce da scrivere e calcolare rispetto agli altri suggerimenti.


EDIT:

che dici cella A1 dovrebbe essere 1 se il valore di B1 si trova nella colonna C e in caso contrario dovrebbe essere 2. Come hai fatto?

direi se il valore di B1 si trova nella colonna C, allora A1 sarà positivo, altrimenti sarà 0. Questo è fatto facilmente con formula: =COUNTIF($C$1:$C$15,B1), cioè: conta le celle nella gamma C1:C15 cui sono uguali a B1.

È possibile combinare COUNTIF con VLOOKUP e IF e questo è MOLTO più veloce rispetto all'utilizzo di 2 ricerche + ISNA. IF(COUNTIF(..)>0,LOOKUP(..),"Not found")

Un po 'di Googling ti porterà tonnellate di examples.

+0

potresti dare un esempio semplice ? Diciamo che la cella A1 dovrebbe essere 1 se il valore di B1 si trova nella colonna C e altrimenti dovrebbe essere 2. Come faresti? – Svish

+1

La domanda era * c'è una funzione che restituisce solo vero o falso a seconda se il valore è stato trovato in una colonna o no? *. A cui 'COUNTIF' è la risposta più semplice. +1 – brettdj

1

è possibile utilizzare:

=IF(ISERROR(VLOOKUP(lookup value,table array,column no,FALSE)),"FALSE","TRUE") 
+1

-1 per fornire lo stesso approccio di una risposta esistente - 3 anni dopo. – brettdj

-1

ISNA è la funzione migliore da utilizzare. L'ho appena fatto.Volevo che tutte le celle il cui valore NON fosse in un array fossero formattate condizionatamente su un determinato colore.

= ISNA (CERCA.VERT ($ A2, Sheet1! $ A: $ D, 2, FALSE))