Question Dans Excel, comment vérifier si une cellule figure dans une liste de valeurs (une plage de cellules)


J'ai une plage (A3: A10) qui contient des noms et je voudrais vérifier si le contenu d'une autre cellule (D1) correspond à l'un des noms de ma liste.

J'ai nommé la plage A3: A10 'some_names', et j'aimerais une formule Excel qui me donne True / False ou 1/0 selon le contenu.


83
2018-05-29 20:43


origine




Réponses:


= COUNTIF (some_names, D1)

devrait fonctionner (1 si le nom est présent - plus si plusieurs instances).


88
2018-05-29 20:47



comment puis-je modifier la formule de sorte qu'il fonctionne dans le cas où le some_names contient 2 colonnes, et au lieu de D1 j'ai D1: E1? - user1993


Ma réponse préférée (modifiée par Ian) est la suivante:

=COUNTIF(some_names,D1)>0

qui renvoie TRUE si D1 se trouve dans la plage some_names au moins une fois, ou FALSE sinon.

(COUNTIF renvoie un nombre entier de fois que le critère est trouvé dans la plage)


65
2018-06-06 20:40





Je sais que l'OP a expressément indiqué que la liste provenait d'un éventail de cellules, mais que d'autres pourraient trouver cela en cherchant une plage de valeurs spécifique.

Vous pouvez également rechercher des valeurs spécifiques, plutôt qu'une plage utilisant le MATCH fonction. Cela vous donnera le numéro où cela correspond (dans ce cas, la deuxième place, donc 2). Il retournera # N / A s'il n'y a pas de correspondance.

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

Vous pouvez également remplacer les quatre premiers par une cellule. Mettez un 4 dans la cellule A1 et tapez ceci dans n'importe quelle autre cellule.

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

26
2017-11-10 22:57



Très agréable. N'oubliez pas d'ajouter des "citations" si votre valeur n'est pas un nombre (il m'a fallu quelques tentatives pour régler cela). - dav
Malheureusement, vous ne pouvez pas utiliser cela en formatage conditionnel :( - StarWeaver
Sûr que vous pouvez. Avec Excel 2007 et versions ultérieures, vous pouvez utiliser la fonction IFERROR. = IFERROR (MATCH (A1, {2,4,6,8}, 0), 0) Ensuite, vous pouvez effectuer votre mise en forme conditionnelle selon que cette cellule = 0 ou> 0, selon votre préférence. - George Dooling
=OR(4={2,4,6,8}) - Slai
Cette réponse est claire: la solution renvoie # N / A - c'est vrai. Mais cela semble inutile: vous ne pouvez pas utiliser # N / A dans une clause if, vous ne pouvez donc pas dire IF (MATCH (4 {2,3}, 0), "yay", "boo") ... la réponse est # N / A pas "boo" - GreenAsJade


Si vous voulez transformer le countif en une autre sortie (comme booléen), vous pouvez aussi faire:

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

Prendre plaisir!


18
2018-05-29 21:09



IF (, TRUE, FALSE) est redondant. - pnuts
L'aide TRUE et FALSE indique ce qui doit être remplacé - Darcys22


Pour la variété, vous pouvez utiliser MATCH, par ex.

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


7
2018-05-29 23:28





il y a un petit astuce qui retourne booléen dans la gamme de cas some_names pourrait être spécifié explicitement tel dans "purple","red","blue","green","orange":

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

Notez que ceci n'est PAS une formule de tableau


3
2017-07-11 22:06



En réalité est une formule matricielle. Ce n'est pas un tableau entré formule ;-) - robinCTS


Vous pouvez nicher --([range]=[cell]) dans un IF, SUMIFS, ou COUNTIFS argument. Par exemple, IF(--($N$2:$N$23=D2),"in the list!","not in the list"). Je crois que cela pourrait utiliser la mémoire plus efficacement.

Alternativement, vous pouvez envelopper un ISERROR autour d'un VLOOKUP, tout enroulé autour d'un IF déclaration. Comme, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).


2
2017-12-05 19:33





Version Array Formula (entrez avec Ctrl + Shift + Enter):

=OR(A3:A10=D1)

0
2017-12-08 12:38



Cela marche. Je pense qu'il a reçu une décote parce que le défenseur ne savait pas comment entrer une formule matricielle ... il devrait ressembler à {= OU (R34: R36 = T34)} après avoir été entré, si vous l'avez entré correctement - GreenAsJade


Dans des situations comme celle-ci, je veux seulement être alerté des erreurs possibles, je résoudrais ainsi la situation ...

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

Alors je copierais cette formule de E1 à E100. Si une valeur dans le D colonne n'est pas dans la liste, je vais recevoir le message MANQUANT mais si la valeur existe, je reçois une cellule vide. Cela fait ressortir les valeurs manquantes beaucoup plus.


-1
2017-08-24 11:59