Chaine de caractère dans Excel
Résolu
Absalom996
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
Absalom996 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Absalom996 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à faire une opération qui ne me semble pas si compliqué dans Excel... Cependant je bloque.
J'ai une feuille avec un tableau du type de celui-ci :
A.................. B
Ferrari...........Voiture
Acer..............Informatique
Renault.........Voiture
Yoplait..........Alimentaire
...
J'ai une deuième feuille dans laquelle j'importe des données du type de celles ci-dessous :
A'......................B'.........................................................C'
01/12/1983......achat d'un PC Acer Veriton 3200.........800 euros€
05/11/1984......tour en Ferrari sur Circuit....................600 euros€
...
Ce que j'aimerai faire c'est ajouter une colonne dans ce deuxième tableau (D') qui testerai si l'un des mots de la liste de la colonne A est présent dans B', si c'est le cas, il faudrait que le mot correspondant dans la colonne B apparaisse dans la colonne D'. Ca donnerai cela :
A'......................B'.........................................................C'...................D'
01/12/1983......achat d'un PC Acer Veriton 3200.........800 euros.......Informatique€
05/11/1984......tour en Ferrari sur Circuit....................600 euros.......Voiture
...
J'ai essayé avec une RECHERCHEV + condition Si mais si l'expression n'est pas exacte mot pour mot, ça ne fonctionne pas... :(
Merci de votre aide
Absalom
Je cherche à faire une opération qui ne me semble pas si compliqué dans Excel... Cependant je bloque.
J'ai une feuille avec un tableau du type de celui-ci :
A.................. B
Ferrari...........Voiture
Acer..............Informatique
Renault.........Voiture
Yoplait..........Alimentaire
...
J'ai une deuième feuille dans laquelle j'importe des données du type de celles ci-dessous :
A'......................B'.........................................................C'
01/12/1983......achat d'un PC Acer Veriton 3200.........800 euros€
05/11/1984......tour en Ferrari sur Circuit....................600 euros€
...
Ce que j'aimerai faire c'est ajouter une colonne dans ce deuxième tableau (D') qui testerai si l'un des mots de la liste de la colonne A est présent dans B', si c'est le cas, il faudrait que le mot correspondant dans la colonne B apparaisse dans la colonne D'. Ca donnerai cela :
A'......................B'.........................................................C'...................D'
01/12/1983......achat d'un PC Acer Veriton 3200.........800 euros.......Informatique€
05/11/1984......tour en Ferrari sur Circuit....................600 euros.......Voiture
...
J'ai essayé avec une RECHERCHEV + condition Si mais si l'expression n'est pas exacte mot pour mot, ça ne fonctionne pas... :(
Merci de votre aide
Absalom
A voir également:
- Chaine de caractère dans Excel
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Liste déroulante excel - Guide
- Caractere speciaux - Guide
- Word et excel gratuit - Guide
2 réponses
Bonsoir,
Ca peut être fait par une fonction personnalisée à mettre dans un module.
Set motclé = Worksheets("Feuil1").[A1] défini le début des mot clés, à adapter à ta feuille.
Le dernier mot clé doit être suivi d'une cellule vide.
La colonne à sa droite contient les rubriques associées
Avec en B7 ton libellé à analyser la formule pour ramener la rubrique est :
=rubrique(B7)
eric
Ca peut être fait par une fonction personnalisée à mettre dans un module.
Function rubrique(chaine As String) As String Dim motclé As Range, ok As Boolean, n As Long Set motclé = Worksheets("Feuil1").[A1] Do If InStr(LCase(chaine), LCase(motclé.Offset(n, 0))) > 0 Then ok = True Else n = n + 1 End If Loop Until ok Or motclé.Offset(n, 0) = "" If ok Then rubrique = motclé.Offset(n, 1) Else: rubrique = "" End Function
Set motclé = Worksheets("Feuil1").[A1] défini le début des mot clés, à adapter à ta feuille.
Le dernier mot clé doit être suivi d'une cellule vide.
La colonne à sa droite contient les rubriques associées
Avec en B7 ton libellé à analyser la formule pour ramener la rubrique est :
=rubrique(B7)
eric
Absalom996
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
Super ça fonctionne ! Bravo Eric et Merci !
Bonjour
combien avez vous de mot clés à traiter?
Peut être un tuyau pour vous aider:
le code "*texte*" cherche si le mot entre guillemet se trouve dans le texte
idem pour le code "*"& Cell&"*" qui cherchera la présence du texte inscrit dans cell
ainsi:
=NB.SI(A1:A100;"*"& Cell&"*") vous donnera le nombre de cellule dans le champ qui comprennent dans leur texte le texte inscrit dans Cell
=RECHERCHEV("*"& Cell&"*";A1:A100;1;0)
vous ressortira le premier texte incluant le texte de Cell
par contre, s'il est nécessaire de chercher tous les mots à chaque ligne, ça risque de faire une formule comique selon le nombre de mots que vous voulez traiter, car il faut un code NB.SI par mot cherché.
ou alors renvoyez un tableau avec pour l'exemple:
de A2 à A1000 la liste des textes
de C1 à Z1 la liste en ligne des mots cherchés
de C2 à Z1000 la formule, à partir de C2:
=SI(NB.SI($A$2:$A$1000;"*"&C$1&"*")>0;C$1;"")
à tirer sur tous le champ C2:Z1000
elle vous renverra dans chaque colonne le mot titre s'il est dans la colonne A
Il y a aussi la possibilité de traiter ce tableau sur une feuille masquée et de ne renvoyer sur la feuille initiale que le titre trouvé.
ou pour une finir une macro, mais je laisse ça aux spécialistes.
crdlmnt
combien avez vous de mot clés à traiter?
Peut être un tuyau pour vous aider:
le code "*texte*" cherche si le mot entre guillemet se trouve dans le texte
idem pour le code "*"& Cell&"*" qui cherchera la présence du texte inscrit dans cell
ainsi:
=NB.SI(A1:A100;"*"& Cell&"*") vous donnera le nombre de cellule dans le champ qui comprennent dans leur texte le texte inscrit dans Cell
=RECHERCHEV("*"& Cell&"*";A1:A100;1;0)
vous ressortira le premier texte incluant le texte de Cell
par contre, s'il est nécessaire de chercher tous les mots à chaque ligne, ça risque de faire une formule comique selon le nombre de mots que vous voulez traiter, car il faut un code NB.SI par mot cherché.
ou alors renvoyez un tableau avec pour l'exemple:
de A2 à A1000 la liste des textes
de C1 à Z1 la liste en ligne des mots cherchés
de C2 à Z1000 la formule, à partir de C2:
=SI(NB.SI($A$2:$A$1000;"*"&C$1&"*")>0;C$1;"")
à tirer sur tous le champ C2:Z1000
elle vous renverra dans chaque colonne le mot titre s'il est dans la colonne A
Il y a aussi la possibilité de traiter ce tableau sur une feuille masquée et de ne renvoyer sur la feuille initiale que le titre trouvé.
ou pour une finir une macro, mais je laisse ça aux spécialistes.
crdlmnt