Formule Excel: la cellule contient certains mots mais pas d'autres -

Formule générique

(=AND(COUNT(SEARCH(inc,A1))>0,COUNT(SEARCH(exc,A1))=0))

Sommaire

Pour tester une cellule pour voir si elle contient certains mots mais pas d'autres, vous pouvez utiliser une formule matricielle basée sur les fonctions COUNT et SEARCH, encapsulée dans la fonction AND.

Dans l'exemple illustré, la formule en C5 est:

(=AND(COUNT(SEARCH(inc,B5))>0,COUNT(SEARCH(exc,B5))=0))

Cette formule renvoie TRUE lorsque B5 contient l'un des mots de la plage nommée inc et aucun des mots de la plage nommée exc .

Il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée.

Explication

Cette formule s'appuie sur la fonction ET pour tester deux conditions en même temps:

  1. Le nombre de mots de la plage nommée inc est> 0
  2. Le nombre de mots de la plage nommée exc est = 0

Si les deux conditions sont TRUE, la formule renvoie TRUE. Si l'une des conditions est FALSE, la formule renvoie FALSE.

Le test de plusieurs mots se fait à l'aide de la fonction SEARCH avec l'aide de COUNT.

Lorsque SEARCH reçoit plus d'un élément à rechercher, il renvoie un tableau de résultats, un par élément. Lorsqu'une correspondance est trouvée, SEARCH renvoie la position de la correspondance. Lorsqu'aucune correspondance n'est trouvée, SEARCH renvoie l'erreur #VALUE. La fonction COUNT obtient un nombre de nombres dans le tableau retourné par SEARCH. COUNT ignore les erreurs par défaut.

Dans l'exemple illustré, la formule est résolue par étapes comme celle-ci

=AND(COUNT((1;11;#VALUE!))>0,COUNT((#VALUE!;#VALUE!))=0) =AND(2>0,0=0) =AND(TRUE,TRUE) =TRUE

Avec des valeurs codées en dur

Il n'est pas nécessaire que vous utilisiez une plage pour votre liste de choses. Si vous ne recherchez qu'un petit nombre d'éléments, vous pouvez utiliser une liste au format tableau, appelée constante de tableau. Par exemple, pour tester le rouge, le bleu ou le vert, mais exclure le rose et l'orange, vous pouvez utiliser:

=AND(COUNT(SEARCH(("red","blue","green"),B5))>0,COUNT(SEARCH(("orange","pink"),B5))=0)

Cette version ne nécessite pas la syntaxe de formule matricielle Ctrl + Maj + Entrée.

Articles intéressants...