Evaluer la présence de sous-chaînes d'une liste dans une cellule

ED31

XLDnaute Junior
Bonjour

Je cherche à tester la présence dans une chaîne de texte d'une ou plusieurs sous-chaîne de texte :
Ex : Ensemble de chaînes à tester : ".com", ".fr", ".br", ".de", "www"

Si une de ces valeurs est présente (une ou plusieurs), la fonction visée doit renvoyer "vrai" ou un tag quelconque. Sinon, zéro. (ce tag me permettra de faire du ménage !).

J'imagine une formule matricielle qui évaluerait pour chaque valeur avec Trouve la présence de la sous-chaîne.... mais je ne vois pas comment l'écrire.
Exemple de chaîne à analyser par une fonction :
The Telegraph - Telegraph online, Daily Telegraph, Sunday Telegraph - Telegraph US_SOC US_CUL The Simpsons humour joke weird :rolleyes:
blog.ific-coaching.com ENTREPRISE COACH VEILLE SENIORS INTELLIGENCE COLLECTIVE performance collective
fr.ubergizmo.com outils web clavier Microsoft
agfax.com US_JAP TTP




Sinon, une fonction VBA personnalisée (UDF) serait bien sûr plus aisée à réaliser.
Mais les fonctions matricielles, c'est le fun !
Merci pour vos tuyaux.:D
 

ED31

XLDnaute Junior
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Merci Cisco,
Ton lien ne fonctionne pas chez moi (désolé, aucun résultat), pourtant je suis connecté.:(
Voici un petit fichier pour fixer les idées.
 

Pièces jointes

  • Teste_chaîne_liste_chaînes.xlsx
    18.4 KB · Affichages: 38

CISCO

XLDnaute Barbatruc
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Bonsoir

J'ai modifié et testé le lien. Maintenant, c'est OK.

Est-ce que ta liste est plus longue dans la réalité, ou ne comporte t'elle que 4 termes ?

@ plus
 
Dernière édition:

ED31

XLDnaute Junior
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Re-bonjour,
En fait la liste devrait comporter une douzaine de termes (je dois les identifier en regardant ma base de données), mais en théorie elle pourrait comprendre toutes les extensions ou préfixes nationaux ou com.. possibles des adresses web.

J'aimerais une formule matricielle qui puisse être utilisée en un deuxième temps pour tester la présence d'une chaîne appartenant à une d'une liste longue (liste de mots clés par exemple), ceci pour pour extraire des enregistrements contenant un ou plusieurs mots-clés fixés pour l recherche). Dans mon fichier:rolleyes:, figurent les adresses web suivies d'une liste de mots clés personnels concaténés). Merci encore
 

Staple1600

XLDnaute Barbatruc
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Bonsoir à tous


Une solution à réserver uniquement à l'exemple fourni dans le fichier du message #3
Code:
=ESTERR(CHERCHE(".com";C8))*ESTERR(CHERCHE(".fr";C8))*ESTERR(CHERCHE(".br";C8))*ESTERR(CHERCHE(".de";C8))=0

En fait la liste devrait comporter une douzaine de termes (je dois les identifier en regardant ma base de données), mais en théorie elle pourrait comprendre toutes les extensions ou préfixes nationaux ou com.. possibles des adresses web.
Pour ce cas de figure, voir dans les archives des forums, le sujet ayant été déjà traité.
(notamment par la voie de RegExp)

EDITION: Bonsoir CISCO
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Bonsoir

Ca fonctionne avec en B8
=OU(ESTNUM(TROUVE(D$3:D$6;C8)))

en matriciel, donc à valider avec Ctrl+maj tempo+entrer (ce qui fait apparaitre des accolades devant et derrière la formule).
Formule à tirer vers le bas.

@ plus

Bonsoir Staple1600
 
Dernière édition:

ED31

XLDnaute Junior
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Merci Staple,

Ta fonction marche mais tu mentionnes qu'elle ne s'applique qu'à ces données. Pourquoi ?
Je vais référencer les valeurs recherchées aux cellules de la plage des valeurs recherchée, car ces valeurs doivent être modifiables par l'utilisateur. Je vais décortiquer la formule booléenne. :)
 

Staple1600

XLDnaute Barbatruc
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Re

Inspirée par la formule de CISCO, une formule non matricielle ;)
Code:
=ESTNUM(RECHERCHE(9^9;TROUVE($D$3:$D$6;C8)))


Ta fonction marche mais tu mentionnes qu'elle ne s'applique qu'à ces données. Pourquoi ?
Oublions le pourquoi et ne gardons que la formule ci-dessus et celle de CISCO ;)
 

ED31

XLDnaute Junior
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Bonsoir Staple1600,

Tu as sorti le 49-3 !
Je suis bluffé mais je ne pige pas bien le rôle du 9^9 dans tout çà mais cela marche.:)
J'espère pouvoir réutiliser ce "trick".:)
 

Staple1600

XLDnaute Barbatruc
Re : Evaluer la présence de sous-chaînes d'une liste dans une cellule

Re

[highlight]ED31[/code]
Si tu préfères utilise cette version personnalisée rien que pour toi ;)
Code:
=ESTNUM(RECHERCHE(CODE("E")^CODE("D")+31;TROUVE($D$3:$D$6;C8)))

ou avec une spéciale dédicace ;)
Code:
=ESTNUM(RECHERCHE(CODE(CELLULE("adresse";$ED$31))^(N("by Staple 1600")+LIGNE());TROUVE($D$3:$D$6;C8)))
 
Dernière édition:

Statistiques des forums

Discussions
312 085
Messages
2 085 196
Membres
102 814
dernier inscrit
JLGalley