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

No Excel, como posso verificar se uma célula está numa lista de valores (um intervalo de células)

Tenho um intervalo (A3:A10) que contém nomes, e gostaria de verificar se o conteúdo de outra célula (D1) corresponde a um dos nomes da minha lista.

Chamei ao intervalo A3:A10 ‘alguns_nomes’, e gostaria de ter uma fórmula Excel que me desse True/False ou 1/0 dependendo do conteúdo.

Respostas (9)

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

=COUNTIF(some_names,D1)

deve funcionar (1 se o nome estiver presente - mais se houver mais do que uma instância).

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

A minha resposta preferida (modificada da de Ian) é:

=COUNTIF(some_names,D1)>0

que devolve VERDADEIRO se D1 for encontrado no intervalo alguns nomes pelo menos uma vez, ou FALSO caso contrário.

(COUNTIF devolve um número inteiro de vezes que o critério é encontrado no intervalo)

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

Eu sei que o OP afirmou especificamente que a lista vinha de uma gama de células, mas outros podem tropeçar nisto enquanto procuram uma gama específica de valores.

Também pode procurar valores específicos, em vez de uma gama utilizando a função MATCH . Isto dar-lhe-á o número onde este corresponde (neste caso, o segundo lugar, portanto 2). Irá retornar #N/A se não houver correspondência.

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

Também pode substituir os quatro primeiros por uma célula. Coloque um 4 na célula A1 e digite-o em qualquer outra célula.

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

Se você quiser transformar o município em alguma outra produção (como booleano) você também pode fazer:

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

Enjoy!

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

Para a variedade pode usar MATCH, por exemplo,

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

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

existe um pequeno truque que devolve o Booleano no caso de some_names poder ser especificado explicitamente em "purple","red","blue","green","orange":

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

Nota: esta NÃO é uma fórmula de matriz

2
2
2
2013-12-05 19:33:00 +0000

Você pode aninhar --([range]=[cell]) num argumento IF, SUMIFS, ou COUNTIFS. Por exemplo, IF(--($N$2:$N$23=D2),"in the list!","not in the list"). Acredito que isto pode usar a memória de forma mais eficiente.

Em alternativa, pode embrulhar um ISERROR em torno de um VLOOKUP, tudo embrulhado em torno de uma declaração IF. Como, por exemplo, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).

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

Array Formula version (enter com Ctrl + Shift + Enter):

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

Em situações como esta, só quero ser alertado para possíveis erros, por isso resolveria a situação desta forma…

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

Depois copiaria esta fórmula de E1 para E100. Se um valor na coluna D não estiver na lista, recebo a mensagem MISSING mas se o valor existir, recebo uma célula vazia. Isso faz com que os valores em falta se destaquem muito mais.