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


88

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

Ho chiamato l'intervallo A3: A10 'some_names', e vorrei una formula Excel che mi darà Vero / Falso o 1/0 a seconda del contenuto.

Risposte:


92

= COUNTIF (some_names, D1)

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


come posso modificare la formula in modo che funzioni nel caso in cui some_namescontenga 2 colonne e anche al posto di D1 ho D1: E1?
user1993,

66

La mia risposta preferita (modificata da Ian's) è:

=COUNTIF(some_names,D1)>0

che restituisce VERO se D1 viene trovato nell'intervallo some_names almeno una volta, oppure FALSO in caso contrario.

(COUNTIF restituisce un numero intero di quante volte il criterio viene trovato nell'intervallo)


26

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

Puoi anche cercare valori specifici, piuttosto che un intervallo usando la MATCHfunzione. Questo ti darà il numero a cui corrisponde (in questo caso, il secondo posto, quindi 2). Restituirà # N / A se non c'è corrispondenza.

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

Puoi anche sostituire i primi quattro con una cella. Inserisci un 4 nella cella A1 e digita questo in qualsiasi altra cella.

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

1
Molto bella. Non dimenticare di aggiungere "virgolette" se il tuo valore non è un numero (mi ci sono voluti un paio per cercare di risolverlo).
dav

1
Purtroppo non è possibile utilizzarlo nella formattazione condizionale :(
StarWeaver,

Certo che puoi. Con Excel 2007 e versioni successive, è possibile utilizzare la funzione IFERROR. = IFERROR (MATCH (A1, {2,4,6,8}, 0), 0) Quindi, puoi eseguire la formattazione condizionale su quella cella = 0 o> 0, a seconda di quale preferisci.
RPh_Coder

6
=OR(4={2,4,6,8})
Slai,

Questa risposta è chiara che la soluzione restituisce # N / A - questo è vero. Ma sembra inutile: non puoi usare # N / A in una clausola if, quindi non puoi dire IF (MATCH (4 {2,3}, 0), "yay", "boo") ... la risposta è # N / A non "boo"
GreenAsJade

18

Se vuoi trasformare il countif in qualche altro output (come booleano) puoi anche fare:

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

Godere!


3
L'aiuto VERO e FALSO indica ciò che deve essere sostituito
Darcys22


4

c'è un piccolo trucco che restituisce il valore booleano nel caso in cui l'intervallo some_namespossa essere esplicitamente specificato in "purple","red","blue","green","orange":

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

Nota che questa NON è una formula di matrice


In realtà, è una formula di matrice. Ciò che non è una matrice inserita nella formula ;-)
robinCTS

2

È possibile nidificare --([range]=[cell])in una IF, SUMIFSo COUNTIFSargomento. Ad 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 ISERRORintorno ad una VLOOKUP, il tutto avvolto intorno ad un IFcomunicato. Come IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).


0

Versione formula array (inserire con Ctrl + Maiusc + Invio):

=OR(A3:A10=D1)

Questo funziona Penso che abbia ottenuto un downvote perché il downvoter non sapeva come inserire una formula di array ... dovrebbe apparire come {= OR (R34: R36 = T34)} dopo che è stato inserito, se lo hai inserito
correttamente

-1

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

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

Quindi copierei questa formula da E1a E100. Se un valore nella Dcolonna non è nell'elenco, visualizzerò il messaggio MISSING ma se il valore esiste, ottengo una cella vuota. Ciò fa risaltare molto di più i valori mancanti.

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.