In Excel, come verificare se una cella è in un elenco di valori (un intervallo di celle)

Ho un intervallo (A3: A10) che contiene nomi e vorrei verificare se il contenuto di un'altra cella (D1) corrisponde a uno dei nomi della mia list.

Ho chiamato la gamma A3: A10 'some_names' e vorrei una formula eccellente che mi darà True / False o 1/0 a seconda del contenuto.

= COUNTIF (some_names, D1)

dovrebbe funzionare (1 se il nome è presente – più se più di una istanza).

La mia risposta preferita (modificata da Ian) è:

=COUNTIF(some_names,D1)>0 

che restituisce TRUE se D1 si trova nell'intervallo some_names alless una volta o FALSE altrimenti.

(COUNTIF restituisce un numero integer di quante volte il criterio si trova nell'intervallo)

So che l'OP specificamente ha dichiarato che l'elenco proveniva da una serie di celle, ma altri potrebbero inciampare su questo mentre cercano una gamma specifica di valori.

È anche ansible cercare valori specifici piuttosto che un intervallo utilizzando la function MATCH . Questo vi darà il numero in cui questo corrisponde (in questo caso, il secondo posto, quindi 2). Tornerà # N / A se non c'è corrispondenza.

 =MATCH(4,{2,4,6,8},0) 

Potresti anche sostituire i primi quattro con una cella. Mettere un 4 in cella A1 e digitarlo in qualsiasi altra cella.

 =MATCH(A1,{2,4,6,8},0) 

Se si desidera trasformare il countif in un'altra output (come boolean) si potrebbe anche fare:

= IF (COUNTIF (some_names, D1)> 0, TRUE, FALSE)

Godere!

Per varietà puoi usare MATCH, ad esempio

=ISNUMBER(MATCH(D1,A3:A10,0))

Puoi nidificare --([range]=[cell]) in un argomento IF , SUMIFS o SUMIFS . Ad esempio, IF(--($N$2:$N$23=D2),"in the list!","not in the list") . Credo che questo potrebbe utilizzare la memory in modo più efficiente.

In alternativa, è ansible avvolgere un ISERROR attorno a un VLOOKUP , tutti avvolti attorno ad un'istruzione IF . Come, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ) .

In situazioni come questo, voglio solo essere avvisato di possibili errori, per cui risolvere la situazione in questo modo …

 =if(countif(some_names,D1)>0,"","MISSING") 

Poi ho copiato questa formula da E1 a E100 . Se un valore nella colonna D non è nell'elenco, riceverò il messaggio MISSING ma se il valore esiste, riceverò una cella vuota. Questo rende i valori mancanti molto più in evidenza.

Versione formula Array (entra con Ctrl + Maiusc + Invio):

 =OR(A3:A10=D1)