Traitement d'une chaine de caractere

gibtoul

XLDnaute Junior
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
 

TempusFugit

XLDnaute Impliqué
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:

gibtoul

XLDnaute Junior
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

  • TEST.xls
    18 KB · Affichages: 40
  • TEST.xls
    18 KB · Affichages: 48
  • TEST.xls
    18 KB · Affichages: 51

TempusFugit

XLDnaute Impliqué
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.
 

gibtoul

XLDnaute Junior
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+
 

tototiti2008

XLDnaute Barbatruc
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
 

TempusFugit

XLDnaute Impliqué
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:

gibtoul

XLDnaute Junior
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
 

Statistiques des forums

Discussions
312 215
Messages
2 086 333
Membres
103 188
dernier inscrit
evebar