Questão No Excel, como faço para verificar se uma célula está em uma lista de valores (um intervalo de células)


Eu 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 na minha lista.

Eu nomeei o intervalo A3: A10 'some_names', e gostaria de uma fórmula de excel que me dê True / False ou 1/0 dependendo do conteúdo.


83


origem




Respostas:


= COUNTIF (some_names, D1)

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


88



Como posso modificar a fórmula para que funcione no caso em que o some_names contém 2 colunas, e também em vez de D1 eu tenho D1: E1? - user1993


Minha resposta preferida (modificada de Ian) é:

=COUNTIF(some_names,D1)>0

que retorna TRUE se D1 for encontrado no intervalo some_names pelo menos uma vez, ou FALSE caso contrário.

(COUNTIF retorna um inteiro de quantas vezes o critério é encontrado no intervalo)


65





Eu sei que o OP declarou especificamente que a lista veio de uma série de células, mas outras podem se deparar com isso enquanto procuram por um intervalo específico de valores.

Você também pode procurar valores específicos, em vez de usar um intervalo MATCH função. Isso lhe dará o número onde isso corresponde (neste caso, o segundo ponto, então 2). Ele retornará # N / A se não houver correspondência.

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

Você também pode substituir os quatro primeiros por uma célula. Coloque um 4 na célula A1 e digite isso em qualquer outra célula.

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

26



Muito agradável. Não se esqueça de adicionar "aspas" se o seu valor não for um número (levei algumas tentativas para resolver isso). - dav
Infelizmente você não pode usar isso na formatação condicional :( - StarWeaver
Certamente você pode. Com o Excel 2007 e posterior, você pode usar a função IFERROR. = IFERROR (MATCH (A1, {2,4,6,8}, 0), 0) Em seguida, você pode fazer sua formatação condicional se a célula = 0 ou> 0, o que você preferir. - George Dooling
=OR(4={2,4,6,8}) - Slai
Esta resposta é clara que a solução retorna # N / A - isso é verdade. Mas parece ser inútil: você não pode usar # N / A em uma cláusula if, então você não pode dizer IF (MATCH (4 {2,3}, 0), "yay", "boo") ... a resposta é # N / A não "boo" - GreenAsJade


Se você quiser transformar o countif em alguma outra saída (como boolean), você também pode fazer:

= IF (COUNTIF (some_names, D1)> 0, VERDADEIRO, FALSO)

Apreciar!


18



IF (, TRUE, FALSE) é redundante. - pnuts
A ajuda VERDADEIRA e FALSA indica o que precisa ser substituído - Darcys22


Para variedade, você pode usar MATCH, por exemplo

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


7





há um truque bacana retornando booleano no intervalo do caso some_names poderia ser especificado explicitamente tal em "purple","red","blue","green","orange":

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

Observe que isso não é uma fórmula de matriz


3



Na verdade, é uma fórmula de matriz. O que não é é uma matriz entrou Fórmula ;-) - robinCTS


Você pode aninhar --([range]=[cell]) em um IF, SUMIFSou COUNTIFS argumento. Por exemplo, IF(--($N$2:$N$23=D2),"in the list!","not in the list"). Eu acredito que isso pode usar a memória de forma mais eficiente.

Como alternativa, você pode envolver um ISERROR em torno de um VLOOKUP, tudo em volta de um IF declaração. Gostar, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).


2





Versão de fórmula de matriz (digite com Ctrl + Shift + Enter):

=OR(A3:A10=D1)

0



Isso funciona. Eu acho que tenho um downvote porque o downvoter não sabia como inserir uma fórmula de array ... ele deveria se parecer com {= OR (R34: R36 = T34)} depois que ele entrou, se você o digitou corretamente - GreenAsJade


Em situações como essa, eu só quero ser alertado para possíveis erros, então eu resolveria a situação desse jeito ...

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

Então eu copiaria esta fórmula de E1 para E100. Se um valor no D coluna não está na lista, eu vou pegar a mensagem MISSING mas se o valor existir, eu recebo uma célula vazia. Isso faz com que os valores ausentes se destaquem muito mais.


-1