Détecter un "morceau" de cellule dans une plage de valeurs

Bonjour,

Après pas mal de recherches, je n'arrive pas à trouver de solution à mon problème.

J'ai une colonne avec 3 lignes par exemple :

1- Pierre mange des Poires

2- La pomme Jacques n'aime pas

3- Pierre qui roule n'amasse pas mousse

Et j'ai besoin de savoir si, pour chaque ligne, on retrouve au moins un des mots dans la liste suivante (qui en réalité contient une centaine de valeurs...) :

Pierre

Banane

Salade

On devrait donc avoir la condition remplie pour la ligne 1 et 3 mais pas pour la ligne 2. Le point important est que je dois partir de la colonne avec les phrases et non l'inverse car j'ai besoin de détecter les lignes qui ne contiennent aucun des mots présents dans la liste des valeurs.

Idéalement j'aimerai faire cela avec une formule (dans une colonne à côté de chaque phrase par exemple).

J'espère avoir été assez clair. Je peux repréciser si besoin.

Merci d'avance pour votre aide !

Bonjour et bienvenue,

Si tu souhaites une formule (et non VBA donc), et que tu as une centaine de noms, alors pour éviter des formules matricielles gourmandes, je te propose de mettre les 100 mots en tête de 100 colonnes, de vérifier la présence de chaque mot dans le texte, et ensuite de faire un calcul simple qui compilera les réponses des 100 tests.

N'hésite pas à poster un fichier pour plus de précision (et de facilité de réponse).

Proposition

5merit.xlsx (9.55 Ko)

Bonjour,

une possibilité avec filtre avancé et plage de critères

Bonsoir,

Merci beaucoup pour vos retours rapides !

@Steelson :

Très bonne idée ta solution d'une colonne par mot. Cela fonctionne bien mais génère beaucoup de colonnes et est peu flexible si on veut rajouter / enlever des mots. En tout cas ça fait le job, mais j'aimerai l'améliorer.

Je mets ci-joint un fichier exemple dans lequel je souhaite savoir si au moins un mot de chaque cellule des "intitulé à filtrer" est présent dans la liste (en 3 colonnes) sur l'onglet 2.

En fait, le vrai fichier source concerne des extraits bancaires mensuels (que je ne peux donc pas diffuser...) présents sur un onglet sur lequel j'effectue des affectations automatiques (loyer, carburant, nourriture, etc.) que je reporte sur un second onglet qui contient des mots clé qui me permettent de détecter la bonne affectation (par exemple pour le carburant "Total", "Shell", etc.).

Toutefois, il y a certaines lignes qui ne sont pas "affectables" car ce ne sont pas des dépenses récurrentes. Et j'ai donc besoin de faire ressortir ces lignes afin de les traiter manuellement...

@i20100 :

Merci également pour ton retour super rapide, mais je n'ai pas compris ta suggestion à travers les filtres avancés. Tu veux dire que l'on peut demander au filtre d'afficher (ou ne pas afficher) toutes les lignes qui contiendraient un des cent termes listés sur un autre onglet ?

Merci encore !

Bonne soirée.

Merit

10merit-v2.xlsx (13.31 Ko)

Bonjour,

Une allergie aux macros ? Il faut faire de la désensibilisation, ça marche

J'ai l'impression que c'est jouable par formule sans trop de latences :

=SI(SOMMEPROD(SIERREUR(CHERCHE(SI(Feuil2!$A$3:$D$55="";"zz";Feuil2!$A$3:$D$55);A2);0));"Oui";"Non")

formule matricielle à valider avec shift+ctrl+entrée

La formule doit s'entourer de { } si la validation est correcte.

Il n'y a que si tu modifies ta liste qu'il faudra attendre un peu qu'elles se mettent toutes à jour.

Mais une fois traité, rien ne t'empêche de supprimer ces formules (sauf 1 pour recopie). Je te le conseille même fortement, cette formule est doublement matricielle.

eric

3merit-v2.xlsx (14.42 Ko)

Je n'ai pas compris pourquoi il y avait plusieurs colonnes ...

En évitant les cellules vierges :

=SI(SOMME(SI(ESTNUM(CHERCHE(Feuil2!$A$3:$A$53;A2));1;0))>0;"OUI";"NON")

en matriciel

4merit-v2.xlsx (13.92 Ko)

Bonjour Eric, je n'avais pas vu ta réponse ... et ton astuce pour les cellules vierges !

Bonjour,

Merci encore une fois pour vos conseils très pertinents !

C'est exactement ce que je recherchais avec cette formule matricielle.

Pour répondre @eriiic : je ne suis pas allergique aux macros mais je maîtrise moins donc si l'on peut faire au plus simple...

@steelson : il y a plusieurs colonne car chaque colonne représente un mot de référence pour la catégorie (sur le fichier banque d'origine, cf. mon post précédent), ce qui donne par exemple en 4 Colonne pour la rubrique Carburant :

CARBURANT Shell Total Esso

Ce qui me donnera comme total carburant toutes les lignes qui contiennent Shell ou Total ou Esso.

Rechercher des sujets similaires à "detecter morceau plage valeurs"