Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Traitement d'une chaine de caractere

  • Initiateur de la discussion Initiateur de la discussion gibtoul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gibtoul

Guest
Bonjour a tous

j'ai dans une colonne la saisie de texte suivant : AC, AF, BV/TC, EC....
j'utilise la formule suivante : =SI(ESTNUM(CHERCHE("EC";C12));"EC";"") pour extraire les cellule contenant EC .
Est-il possible dans la meme formule de rajouter les autres conditions

Je pensé modestement qu'avec c'est formule cela allait fonctionner... que nenni

=OU(SI(ESTNUM(CHERCHE("EC";C12));"EC";"");(SI(ESTNUM(CHERCHE("BV";C12));"BV";""))

Si une bonne ame pouvez m'éclairer

merci
 
Re : Traitement d'une chaine de caractere

Bonjour


Essaie cette formule en B1 (par exemple)

Code:
=NON(ESTNA(EQUIV(A1;{"AC";"AF";"BV/TC";"EC"};0)))

Si en A1 tu as une des valeurs présentes dans la matrice
alors B1 renvoie VRAI sinon B1 renvoie FAUX.

Ce que j'appelle la matrice étant : {"AC";"AF";"BV/TC";"EC"}
 
Dernière édition:
Re : Traitement d'une chaine de caractere

Bonjour mutzik

J'aurais jusqu'a 5 chaines a rechercher

Bonjour Tempusfugit

Lors je detecte la chaine je dois remonté le nom... je joins un petit fichier pour etre plus clair
 

Pièces jointes

Re : Traitement d'une chaine de caractere

Dans ce cas

essaie cette formule
Code:
=INDEX({"AC";"AF";"BV/TC";"EC"};EQUIV(A1;{"AC";"AF";"BV/TC";"EC"};0))

Si en A1 tu saisis AF alors cette formule en B1 renverra AF

etc.. etc..

Il te suffit de mettre les valeurs nécessaires dans la matrice {"AC";"AF";"BV/TC";"EC"}
et d'adapter la formule en conséquence.
 
Re : Traitement d'une chaine de caractere

Tempusfugit

Merci , j'ai adapté la formule cela donne : =INDEX({"TD";"EC";"EB";"SP";"KB";"X";"X";"X";"X";"X";"X";"X";"X";"X";"X";"X";"X";"X";"TD";"X";"X";"X";"X";"X";"EC"};EQUIV(C24;{"TD";"EC";"EB";"SP";"KB";"BV/TC";"AL";"TC";"EP";"GM/TC";"TC/EP";"LB/TC";"CM/TC";"SG";"GM/JPL";"TC/LB";"RQ";"GM";"SP/TD";"DC";"CM";"BV";"AF";"PC/TC";"EC/CM"};0))

n'y a t' il pas une formule plus simple ?

merci pour ton aide

a+
 
Re : Traitement d'une chaine de caractere

Bonjour à tous,

si j'ai compris, en H4 de ton fichier

Code:
=SI(ESTNUM(EQUIV(FAUX;(NBCAR(SUBSTITUE($C4;$E$3:$G$3;""))=NBCAR($C4));0));INDEX($E$3:$G$3;1;EQUIV(FAUX;(NBCAR(SUBSTITUE($C4;$E$3:$G$3;""))=NBCAR($C4));0));"")

à valider par Ctrl+Maj+Entrée
 
Re : Traitement d'une chaine de caractere

Bonjour de nouveau


Je te mets une macro qui le fait (par souci de commodité)
Code:
Sub NommerMatrice()
ActiveWorkbook.Names.Add Name:="valeurs", RefersToR1C1:= _
        "={""TD"";""EC"";""EB"";""SP"";""KB"";""BV/TC"";""AL"";""TC"";""EP"";""GM/TC"";""TC/EP"";""LB/TC"";""CM/TC"";""SG"";""GM/JPL"";""TC/LB"";""RQ"";""GM"";""SP/TD"";""DC"";""CM"";""BV"";""AF"";""PC/TC"";""EC/CM""}"
End Sub
Normalement il n'y doit y avoir que des valeurs uniques dans la matrice.

Ensuite la formule de mon précédent message devient:
Code:
=INDEX(valeurs;EQUIV(A1;valeurs;0))
(Pourquoi as-tu mis tous ces X ?)
 
Dernière édition:
Re : Traitement d'une chaine de caractere

Merci à tototiti2008 et à tempusfugit pour l'aide apporté .

tempusfugit j'ai fais un test de ton code vba mais j'ai du mal a travailler avec (je suis pas assez calé ...)
tototiti2008 ta formule correspond plus a mon besoin et fonctionne parfaitement

Encore merci vous deux

A bientot

gibtoul
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…