125 votes

Cellule de contrôle pour une lettre ou un ensemble de lettres spécifiques

Dans une feuille de calcul Google, je veux utiliser une formule qui produira un certain texte ou un certain nombre si une certaine 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") il affiche "NON". Existe-t-il une formule que je peux utiliser pour dire quelque chose comme =IF(A1 CONTAINS "Bla";"YES";"NO") pour qu'il sorte "OUI".

163voto

flyingjamus Points 3801

Vous pouvez utiliser RegExMatch :

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

75voto

pnuts Points 13391

Certaines options sans REGEXMATCH car vous pourriez vouloir être insensible à la casse et ne pas dire blast o ablative pour déclencher un YES . En utilisant la virgule comme délimiteur, comme dans le PO, et en ignorant pour l'instant la condition IF :

Première réponse très similaire à celle de @user1598086 :

=FIND("bla",A1)

Est sensible à la casse mais renvoie #VALEUR ! plutôt que NO et un numéro plutôt que YES (les deux peuvent cependant être changés en NO/YES respectivement).

=SEARCH("bla",A1)  

Insensible à la casse, donc traite Black y black également. Les retours sont les mêmes que ci-dessus.

Le premier (pour le second équivalent) pour indiquer si bla présent après les trois premiers caractères de A1 :

=FIND("bla",A1,4)  

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

Pour trouver Bla uniquement lorsqu'il s'agit d'un mot complet (c'est-à-dire entre les espaces - et non 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 de préférence) ou #VALUE! nous pouvons utiliser ISERROR pour tester la présence de #VALUE! dans une formule IF, par exemple dans le premier exemple ci-dessus :

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

Plus long que le regexmatch mais les composants sont facilement ajustables.

2voto

imbond Points 942

Y

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

-8voto

J IF(A1="Bla*","YES","NO") .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X