Défi de comparaison de contenus entre deux colonnes de textes

Résolu/Fermé
vdeux007 Messages postés 3 Date d'inscription vendredi 19 avril 2019 Statut Membre Dernière intervention 22 avril 2019 - 19 avril 2019 à 19:01
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 - 22 avril 2019 à 17:12
Bonjour à toutes et à tous,
d'habitude je m'en sors toujours avec les formules sous Excel, mais là, j'avoue de que je sèche...

Voici mon problème.
COL A : contient une liste d'expressions
COL B : contient le résultat de ce que je veux faire (OUI ou NON)
COL C : contient des mots à tester et à comparer avec les expressions de la colonne A



En clair, si dans la colonne A une expression contient au moins un mot présent dans la colonne C, il faut renvoyer la valeur "OUI" dans la colonne B.
J'ai mis en rouge dans l'illustration ce que ça donnerait si ça marchait... mais je trouve pas !!!

Si quelqu'un voit la solution...
Merci d'avance.
A voir également:

3 réponses

ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 429
19 avril 2019 à 20:13
Bonjour

Une proposition avec macro
https://www.cjoint.com/c/IDtsnqzBCIB

Cdlmnt
0
vdeux007 Messages postés 3 Date d'inscription vendredi 19 avril 2019 Statut Membre Dernière intervention 22 avril 2019
22 avril 2019 à 16:11
merci bcp pour la macro et le fichier joint. Nickel.
Bravo....
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 429
22 avril 2019 à 17:12
De rien
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Bonne fin de journée
0
via55 Messages postés 14509 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 2 janvier 2025 2 739
20 avril 2019 à 00:56
Bonjour à vous deux

Une autre possibilité avec une fonction personnalisée à mettre dans un module de l'éditeur VBA :
Function trouver(chaine As Range, plage As Range)
a = chaine.Value
bon = "non"
For Each cell In plage
b = cell.Value
On Error Resume Next
r = Application.WorksheetFunction.Find(b, a)
If r > 0 Then
bon = "oui"
End If
Next
trouver = bon
End Function

Elle s'utilise après comme toute fonction Excel selon la syntaxe :
=trouver(cellule contenant la chaîne à tester;plage de la liste)
exemple : = trouver(A1;$C$1:$C$28)
les $ permettant d'étirer la formule vers le bas pour A2, A3 .....

Cdlmnt
Via
0
Bonjour,

Une autre solution, sans macro mais avec formule matricielle

En B1 : =SI(SOMME(SIERREUR(CHERCHE($C$1:$C$28;$A1);0))>0;"OUI";"non")
Attention formule matricielle à valider par Maj+Ctrl+Entrée, ce qui donnera {=SI(SOMME(SIERREUR(CHERCHE($C$1:$C$28;$A1);0))>0;"OUI";"non")}

Puis formule à tirer vers le bas

Cordialement
0
vdeux007 Messages postés 3 Date d'inscription vendredi 19 avril 2019 Statut Membre Dernière intervention 22 avril 2019
22 avril 2019 à 16:13
Merci pour l'approche mais je pense que cela ne fonctionne qu'en comparant les valeurs complètes des deux cellules comparées, donc ce n'est pas efficient pour moi
0