2013-05-29 20:43:50 +0000 2013-05-29 20:43:50 +0000
89
89

In Excel, come posso controllare se una cella è in una lista di valori (un intervallo di celle)

Ho un intervallo (A3:A10) che contiene nomi, e vorrei controllare se il contenuto di un'altra cella (D1) corrisponde a uno dei nomi nella mia lista.

Ho chiamato l'intervallo A3:A10 ‘alcuni_nomi’, e vorrei una formula di Excel che mi dia Vero / Falso o 1/0 a seconda del contenuto.

Antwoorden (9)

92
92
92
2013-05-29 20:47:46 +0000

=COUNTIF(alcuni_nomi,D1)

dovrebbero funzionare (1 se il nome è presente - più se più di un'istanza).

66
66
66
2013-06-06 20:40:03 +0000

La mia risposta preferita (modificata da quella di Ian) è:

=COUNTIF(some_names,D1)>0

che restituisce VERO se D1 si trova nell'intervallo alcuni_nomi almeno una volta, o FALSO altrimenti.

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

26
26
26
2014-11-10 22:57:45 +0000

So che l'OP ha dichiarato specificamente che la lista proveniva da un intervallo di celle, ma altri potrebbero inciampare su questo mentre cercano un intervallo specifico di valori.

Si può anche cercare su valori specifici, piuttosto che su un intervallo usando la funzione MATCH . Questo vi darà il numero dove questo corrisponde (in questo caso, il secondo punto, quindi 2). Se non c'è corrispondenza, restituirà #N/A.

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

Si possono anche sostituire i primi quattro con una cella. Mettete un 4 nella cella A1 e digitatelo in qualsiasi altra cella.

=MATCH(A1,{2,4,6,8},0)
18
18
18
2013-05-29 21:09:03 +0000

Se si vuole trasformare il conteggio in qualche altra uscita (come booleano) si potrebbe anche fare:

=IF(COUNTIF(alcuni_nomi,D1)>0, VERO, FALSO)

Enjoy!

8
8
8
2013-05-29 23:28:54 +0000

Per la varietà è possibile utilizzare MATCH, ad esempio

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

5
5
5
2018-07-11 22:06:20 +0000

c'è un ingegnoso piccolo trucco che restituisce il booleano nel caso in cui some_names potrebbe essere specificato esplicitamente come "purple","red","blue","green","orange":

=OR("Red"={"purple","red","blue","green","orange"})
``` &001 


Nota questa NON è una formula di matrice
2
2
2
2013-12-05 19:33:00 +0000

È possibile nidificare --([range]=[cell]) in un argomento IF, SUMIFS, o COUNTIFS. Per esempio, IF(--($N$2:$N$23=D2),"in the list!","not in the list"). Credo che questo potrebbe usare la memoria in modo più efficiente.

In alternativa, si può avvolgere un ISERROR intorno ad un VLOOKUP, tutto avvolto intorno ad un'affermazione IF. Ad esempio, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).

0
0
0
2016-12-08 12:38:21 +0000

Versione Array Formula (inserire con Ctrl + Shift + Enter):

=OR(A3:A10=D1)
-1
-1
-1
2013-08-24 11:59:30 +0000

In situazioni come questa, voglio solo essere avvisato di eventuali errori, quindi risolverei la situazione in questo modo …

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

Poi copierei questa formula da E1 a E100. Se un valore nella colonna D non è nella lista, ricevo il messaggio MISSING ma se il valore esiste, ottengo una cella vuota. Questo fa risaltare molto di più i valori mancanti.