web-dev-qa-db-fra.com

Vérifier la cellule pour une lettre spécifique ou un ensemble de lettres

Dans une feuille de calcul Google, je souhaite utiliser une formule qui générera un certain texte ou un certain nombre si une cellule contient certaines lettres.

Par exemple, si je mets =IF(A1="Black";"YES";"NO") et que A1 est égal à "Noir" - la sortie "OUI" est correcte. Cependant, lorsque je mets =IF(A1="Bla";"YES";"NO"), la sortie est "NON". Existe-t-il une formule que je peux utiliser et que je peux dire quelque chose comme =IF(A1 CONTAINS "Bla";"YES";"NO") pour afficher "OUI".

97
user1799724

Vous pouvez utiliser RegExMatch:

=IF(RegExMatch(A1;"Bla");"YES";"NO")
135
flyingjamus

Certaines options sans REGEXMATCH, car vous voudrez peut-être être insensible à la casse et ne pas vouloir dire blast ou ablative pour déclencher une YES. En utilisant une virgule comme délimiteur, comme dans le PO, et pour le moment en ignorant la condition IF: 

D'abord très similaire à la réponse de @ user1598086: 

=FIND("bla";A1)

Est sensible à la casse mais renvoie #VALUE! plutôt que NO et un nombre plutôt que YES (les deux pouvant toutefois être modifiés en NON/OUI respectivement). 

=SEARCH("bla";A1)  

Insensible à la casse, traite donc Black et black également. Retourne comme ci-dessus.

Le premier (pour le dernier équivalent) indique si bla présente après les trois premiers caractères de A1: 

=FIND("bla";A1;4)  

Renvoie un nombre pour blazer, black mais #VALUE! pour blazer, blue

Pour trouver Bla uniquement lorsqu'un mot complet est utilisé seul (c'est-à-dire entre des espaces - pas au début ou à la fin d'une "phrase"): 

=SEARCH(" Bla ";A1) 

Puisque le retour dans tous les cas ci-dessus est soit un nombre ("trouvé", donc YES préféré), soit #VALUE!, nous pouvons utiliser ISERROR pour tester #VALUE! dans une formule IF, par exemple en prenant le premier exemple ci-dessus: 

 =if(iserror(FIND("bla";A1));"NO";"YES")  

Plus long que regexmatch mais les composants sont facilement ajustables.

59
pnuts

Vous pouvez utiliser la formule suivante,

=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")
2
imbond