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


88

J'ai une plage (A3: A10) qui contient des noms et j'aimerais 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 donnera True / False ou 1/0 selon le contenu.

Réponses:


92

= COUNTIF (quelques noms, D1)

devrait fonctionner (1 si le nom est présent - plus si plus d'une instance).


comment puis-je modifier la formule pour qu'elle fonctionne dans le cas où le some_namescontient 2 colonnes, et aussi au lieu de D1 j'ai D1: E1?
user1993

66

Ma réponse préférée (modifiée à partir de Ian) est:

=COUNTIF(some_names,D1)>0

qui retourne VRAI si D1 est trouvé dans la plage certains noms au moins une fois, ou FALSE sinon.

(COUNTIF renvoie un entier représentant le nombre de fois où le critère est trouvé dans la plage.)


26

Je sais que le PO a spécifiquement indiqué que la liste provenait de plusieurs cellules, mais d’autres pourraient tomber sur cette question tout en cherchant une plage spécifique de valeurs.

Vous pouvez également rechercher des valeurs spécifiques plutôt qu'une plage à l'aide de la MATCHfonction. 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)

1
Très agréable. N'oubliez pas d'ajouter des "guillemets" si votre valeur n'est pas un nombre (cela m'a pris quelques tentatives pour résoudre ce problème).
dav

1
Malheureusement, vous ne pouvez pas utiliser ceci dans le 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.
RPh_Coder

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

Cette réponse indique clairement que la solution renvoie # N / A - cela 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

18

Si vous voulez transformer le compte en une autre sortie (comme boolean), vous pouvez aussi faire:

= IF (COUNTIF (certains_noms, D1)> 0, VRAI, FAUX)

Prendre plaisir!


3
Les aides TRUE et FALSE indiquent ce qui doit être remplacé
Darcys22

8

Pour varier, vous pouvez utiliser MATCH, par exemple

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


4

il y a un petit truc astucieux qui retourne un booléen dans la plage de cas some_namespeut être spécifié explicitement comme dans "purple","red","blue","green","orange":

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

Notez que ceci n'est PAS une formule matricielle


En fait, il est une formule de matrice. Ce que ce n'est pas, c'est une formule entrée dans un tableau ;-)
robinCTS

2

Vous pouvez imbriquer --([range]=[cell])dans un IF, SUMIFSou COUNTIFSargument. 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 ISERRORun VLOOKUP, tout autour d’une IFdéclaration. Comme IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).


0

Version de la formule de tableau (entrez avec Ctrl + Maj + Entrée):

=OR(A3:A10=D1)

Cela marche. Je pense que cela a eu un vote négatif parce que le votant ne savait pas comment entrer une formule matricielle ... elle devrait ressembler à {= OR (R34: R36 = T34)} après sa saisie, si vous l'avez entrée correctement
GreenAsJade

-1

Dans de telles situations, je souhaite uniquement être averti des erreurs éventuelles. Je résoudrais donc la situation de cette façon ...

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

Ensuite, je copierais cette formule de E1à E100. Si une valeur de la Dcolonne ne figure pas dans la liste, j'obtiendrai le message MISSING mais si la valeur existe, j'obtiendrai une cellule vide. Cela fait ressortir beaucoup plus les valeurs manquantes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.