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".
Vous pouvez utiliser RegExMatch
:
=IF(RegExMatch(A1;"Bla");"YES";"NO")
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.
Vous pouvez utiliser la formule suivante,
=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")