Extraction d'une chaine de Nbre ou chiffres séparés par des signes
#1
Régulier XLPages

Inscription: 25/09/2011

Messages: 54

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 28-07-2012 01h18
Bonjour Le Forum,
Mon souhait serait d'extraire d'une chaine, formée de  nombre ou de chiffres séparés par des points ou des tirets etc... et de les coller dans des cellules séparées ( voir exemple dans P.J)
Je galère grave depuis un certain temps !
Merci d'avance.
Turfman.

Pièce jointe:
zip Exemple.zip   [ Taille: 7.02 Ko - Téléchargements: 807 ]
Hors Ligne
Rapport   Haut 

Re: Extraction d'une chaine de Nbre ou chiffres séparés par des signes
#2
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 28-07-2012 08h37
 Bonjour turfman, Didier, le forum

Tu as plusieurs possibilités pour résoudre ton problème :
- en premier, l'utilisation de l'assistant "convertir", qui permet de résoudre ton petit problème
- en formule,
- en macro

Le convertisseur, Excel dispose d'un outil qui permet de séparer dans les colonnes adjacentes (vers la droite), les données de la cellule suivant un ou des séparateurs. Attention, les colonnes adjacentes doivent être vides, si non les données seront écrasées.

Avant de voir la boîte de dialogue de l'assistant, il est préférable de n'avoir qu'un type de séparateur, toi tu en as 4, le "-", "." , "/" ,et le " ".
J'ai décidé de garder " " comme séparateur, il faut donc remplacer les séparateurs
1) sélectionne la plage de tes données
2) fait un édition/remplacer... du "." par " " et valide la boîte de dialogue
Procède de la même manière pour "-", le "/"

Je ne peux te dire ou se trouve le bouton de cet assistant dans ta version, étant sous mac, sous mac on le trouve dans le menu données.


1) Sélectionne des données
2) clique sur le bouton de l'assistant
3) dans la boîte de dialogue qui s'affiche, clique sur Délimité et suivant
4) dans la deuxième étape, on définit le ou les séparateurs que l'on a, ici tu peux laisser la "tabulation" et coche l'espace.
Avant de valider coche aussi le champ "interpréter des séparateurs identiques consécutifs comme uniques", cela va évite d'avoir à supprimer deux colonnes.
5) clique sur le bouton Fin

En formule, la solution que je te propose ne fonctionnera pas si le nombre de caractères tes données à convertir est supérieur à 2. 

Insère une colonne avant la B, pour faire la même chose que l'édition/remplacer.
Pour remplacer un caractère dans une chaîne texte, j'ai l'habitude d'utiliser la fonction SUBSTITUE, ce qui donnerait cette formule
Mais dans tes données tu as un séparateurs " / " qui est composé de trois caractères en fait, et bien on va remplacer ce " / " par le " " . Pour la petite histoire on aurait peut le faire aussi avec l'assitant, mais je n'aurai peut parler de l'option du séparateur consécutif
=SUBSTITUE(SUBSTITUE(A5;".";" ");" / ";" ")
J'ai volontairement supprimer dans la formule la fonction pour le séparateur "-", il n'y en a pas dans ton exemple.

Passons à la séparation des données.
Dans la cellule C5, écrit cette formule
=SUPPRESPACE(STXT(B5;1;2))*1
la fonction STXT retourne une chaîne teste qui est un extrait de la chaîne de départ (Arg1), l'extraction comme au énième caractère stipule par la valeur de la argument 2. Le nombre de caractères qui compose l'extrait est au maximum égale à la valeur de l'argument 3.
la fonction SUPPRESPACE supprime les caractères " " inutiles, ceux qui sont placés en premier, a la fin, et contigus dans l'extrait. Dans notre cas ce sont ceux en fin d'extrait qui seront supprimés.
Le *1 permet de passer d'une valeur texte à une valeur numérique.
Voilà pour le premier champ, mais cela va se compliquer

en D5, écrit cette formule

=SUPPRESPACE(STXT($B5;NBCAR(C5)+COLONNE(B1);2))*1
la fonction NBCAR retourne le nombre de caractère contenu dans la cellule de l'argument 1.
La fonction COLONNE retourne le numéro de la colonne de la cellule de l'argument 1

Voilà pour le deuxième champ.
Si tu le veux tu peux commencer à faire un glisser vers le bas pour voir le comportement des trois formules.

On va vers un problème....
Si tu fais un glisser vers la droite de la cellule, les formules vont te retourner des valeurs incohérentes.
Cela vient qu'il faut que cumuler les caractères des cellules précédentes pour :
 - E5, il faut prend les caractères en C5 et D5,
 - I5, les caractères de la plage C5:H5 
en fait un SOMME(NBCAR($C5:.5))

C'est possible mais la fonction NBCAR sur une plage de cellules, ne retourne que le nombre de caractères de la première cellule et pas les autres. Sauf qu'il y a pour nous dans Excel les formules matricielles, ont les valides par les touches Ctrl+Shift+Entrer, c'est une combinaison de touches (pas une séquence de touches)
La formule en E5 s'écriera ainsi
=SUPPRESPACE(STXT($B5;SOMME(NBCAR($C5:D5))+COLONNE(C1);2))*1
si la validation en matricielle est correcte, tu vas voir apparaître dans la zone de saisie de la formule des { } entourer la formule.
Voilà pour ce qui est des formules. Je le répète les valeurs retournées dépendent de la structures de ton tableau, deux caractères maxi

Pour la macro, tu as tout pour la réaliser.

@+Jean-Marie

Hors Ligne
Rapport   Haut 

Re: Extraction d'une chaine de Nbre ou chiffres séparés par des signes
#3
Régulier XLPages

Inscription: 25/09/2011

Messages: 54

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 28-07-2012 18h25

Bonjour Jean-Marie, Didier, Le Forum,

Jean-Marie; je te remercie infiniment une nouvelle fois, pour avoir pris sur ton temps pour me fournir une réponse "éclair", et comme d'habitude accompagnée d'explications claires. Tu es incollable, bravo, c'est nickel ,et ça me convient parfaitement.

Turfman.

 

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes