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

Réponses:


161

Vous pouvez utiliser RegExMatch:

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

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.


@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")

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.