web-dev-qa-db-fra.com

Dans Excel

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 "certains_noms" et j'aimerais une formule Excel qui me donnera Vrai/Faux ou 1/0 selon le contenu.

88
joseph.hainline

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.)

66
joseph.hainline

= COUNTIF (quelques noms, D1)

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

92
pnuts

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 de valeurs spécifique.

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

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!

18
Ian McClellan

Pour varier, vous pouvez utiliser MATCH, par exemple.

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

7
barry houdini

il y a un petit truc astucieux qui retourne un booléen dans le cas où some_names pourrait ê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

3
Vrun

Vous pouvez imbriquer --([range]=[cell]) dans un argument IF, SUMIFS ou COUNTIFS. 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.

Sinon, vous pouvez envelopper une ISERROR autour d'une VLOOKUP, le tout autour d'une instruction IF. Comme, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).

2
John Skilbeck

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

=OR(A3:A10=D1)
0
Slai