Recherchez dans la cellule une lettre ou un ensemble de lettres spécifique

124

Dans une feuille de calcul Google, je souhaite utiliser une formule qui affichera 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 A1 est égal à "Noir" - il affiche correctement "OUI". Cependant quand je le mets, =IF(A1="Bla";"YES";"NO")il sort "NON". Y a-t-il une formule que je peux utiliser pour que je puisse dire quelque chose du genre =IF(A1 CONTAINS "Bla";"YES";"NO")pour qu'elle affiche "OUI".

user1799724
la source

Réponses:

161

Vous pouvez utiliser RegExMatch:

=IF(RegExMatch(A1;"Bla");"YES";"NO")
Flyingjamus
la source
74

Certaines options sans REGEXMATCH, car vous voudrez peut-être être insensible à la casse et ne pas vouloir dire blastou ablativedéclencher un YES. En utilisant la virgule comme délimiteur, comme dans l'OP, et pour le moment en ignorant la condition IF:

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

=FIND("bla",A1)

Est sensible à la casse mais renvoie #VALUE! plutôt que NOet un nombre plutôt que YES(qui peuvent cependant être changés respectivement en NON / OUI).

=SEARCH("bla",A1)  

Insensible à la casse, traite donc Blacket blackégalement. Renvoie comme ci-dessus.

Le premier (pour le second équivalent) pour indiquer s'il est blaprésent après les trois premiers caractères de A1:

=FIND("bla",A1,4)  

Renvoie un nombre pour blazer, blackmais #VALUE!pour blazer, blue.

Pour trouver Blaseulement quand un mot complet 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 YESpré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 le regexmatchmais les composants sont facilement réglables.

pnuts
la source
@KaiNoack vous devez remplacer ;par ,dans Google Spreadsheet
Michael
@pnuts excellente réponse!
Michael
2

Vous pouvez utiliser la formule suivante,

=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")
imbiber
la source
-8

Utilisez simplement = IF(A1="Bla*","YES","NO"). Lorsque vous insérez l'astérisque, il agit comme un caractère générique pour tout nombre de caractères après le texte spécifié.

Tyler Depies-Bobrowitz
la source
2
Cela ne fonctionne pas. Essayé: = if (N7 = "N *", 0,1) sur une valeur de cellule de "NON Merci" et il renvoie "1"
Clay Nichols