Identification d'une suite de chiffre

Résolu/Fermé
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014 - 3 févr. 2014 à 09:51
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014 - 4 févr. 2014 à 19:48
Bonjour,
Dans un fichier Excel,
comment, à partir d'une colonne "adresse", identifier la suite des 5 chiffres composant le "code postal" (celle-ci pouvant se trouver à n'importe quelle position de la cellule) et la copier dans une colonne contiguë)
Merci


A voir également:

13 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
3 févr. 2014 à 10:14
Bonjour
Sans passer par VBA je ne vois qu'une solution avec manip selon cet exemple à adapter sous condition:

1°) qu'il n'y ait pas dans vos adresses de valeurs numériques isolées supérieures au code postal, (c'est probable)
2°) que les éléments de votre adresse soit séparés par des blancs

Dans ce cas
__copier la liste et coller la en A sur une autre feuille
__sélectionnez A:A / Ruban / Données / Convertir
__ choisir l'option " délimité" " / Suivant / Espace / Terminer
(si les textes sont séparées par autre chose que des blancs, utilisez ce séparateur
les composants de l'adresse se répartissent sur plusieurs colonnes

au delà de la dernière colonne remplie,(en Z pour l'exemple) placez cette formule:

=INDEX(A1:Y1;EQUIV(MAX(A1:Y1);A1;Y1;0)

cette formule tirée sur la hauteur utile vous renverra le code dans la colonne Z. Il faudra ensuite faire un copier coller "valeur" depuis Z sur la colonne souhaitée pour supprimer les formules

... à moins bien sur qu'une bonne âme plus douée vous fasse une proposition en VBA, ce qui serait nettement plus technique!
Crdlmnt
0
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014
3 févr. 2014 à 11:26
le système me répond qu'il y a une errreur dans la formule
=INDEX(A1:Y1;EQUIV(MAX(A1:Y1);A1;Y1;0)
0
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014
3 févr. 2014 à 10:22
Merci pour votre réponse rapide
Je vais essayer...
Mais, n'étant pas un spécialiste d'Excel, cela risque d'être long !
Je vous tiens au courant !
Cordialement
0
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014
3 févr. 2014 à 11:25
le système me répond qu'il y aune erreur dans la formule
=INDEX(A1:Y1;EQUIV(MAX(A1:Y1);A1;Y1;0) ?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
3 févr. 2014 à 11:37
... et il a raison, remplacez le A1;Y1 final par A1:Y1 avec : au lieu de ;
C'est une faute de frappe de ma spécialité
excuses
crdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
3 févr. 2014 à 11:48
Bonjour à tous,

une proposition de formule matricielle (à valider par CTRL+MAJ+ENTER) :

=STXT(A6;MIN(SI((SIERREUR(--STXT(A6;LIGNE(INDIRECT("$1:$"&NBCAR(A6)-4));5)<=99999;FAUX))*((SIERREUR(--STXT(A6;LIGNE(INDIRECT("$1:$"&NBCAR(A6)-4));5)<=99999;FAUX))=(SIERREUR(--STXT(A6;LIGNE(INDIRECT("$1:$"&NBCAR(A6)-4));5)>1000;FAUX)))*(ESTNUM(--STXT(A6;LIGNE(INDIRECT("$1:$"&NBCAR(A6)-4));1))=(SIERREUR(--STXT(A6;LIGNE(INDIRECT("$1:$"&NBCAR(A6)-4));5)<=99999;FAUX)))*((ESTNUM(--STXT(A6;LIGNE(INDIRECT("$1:$"&NBCAR(A6)-4))+4;1)))=(SIERREUR(--STXT(A6;LIGNE(INDIRECT("$1:$"&NBCAR(A6)-4));5)<=99999;FAUX)));LIGNE(INDIRECT("$1:$"&NBCAR(A6)-4));""));5)

prise comme ça, ça fait peur, mais en décomposant, cette formule vérifie :

pour chaque indice allant de 1 à nbcar(A6) - 4
1) le caractère à cet indice est-il un chiffre
2) le caractère à indice + 4 est-il un chiffre
3) la chaîne de 5 caractères de indice à indice + 4 est-elle comprise entre 01000 et 99999
4) si c'est le cas, récupérer l'indice de cette situation sinon mettre ""
5) prendre le min de ces indices (au cas où il y en aurait plusieurs)
6) retourner la sous-chaîne de 5 caractères à partir de cet indice_min

remarque : si les codes postaux apparaissent toujours en 2ème occurrence (je ne vois pas trop pourquoi mais sans tes données on peut tout imaginer) remplacer le min par un petite.valeur( ,2)

cordialement
0
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014
3 févr. 2014 à 19:52
Encore merci de votre aide :
j'ai bien réussi à créer les différentes colonnes et les codes postaux ont bien été isolés !
Cependant quand j'entre la formule "=INDEX(A1:Y1;EQUIV(MAX(A1:Y1);A1:Y1;0) j'ai encore une erreur en retour
Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
4 févr. 2014 à 07:40
Bonjour alaion

en fait, la formule que je vous ai proposée fonctionne, j'ai testé, mais avec l'essai ci joint, je m'aperçois qu'elle est trop beaucoup trop compliquée....!!

essayez donc simplement avec =MAX(A1:Y1), ça revient au même!

Voyez ce que donne le principe ici (la formule est = MAX(B2:L2) pour s'ajuster aux besoins de l'exemple.

https://www.cjoint.com/?DBehIx21Mul

et revenez si ça ne fonctionne pas chez vous, mais dites moi quelle est l'erreur signalé par Excel et donnez quelques précisions sur la configuration de vos données (colonnes occupées après conversion/ position de la ,formule etc, formule) car vues les données que vous traitez, je pense que vous ne pouvez pas transmettre le fichier.
Crdlmnt




crdlmnt
0
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014
4 févr. 2014 à 10:34
Encore une fois merci pour votre aide...
Mon fichier étant effectivement un fichier réel, je suis obligé de le modifier pour le transmettre.
Je suis indisponible pour un moment mais je vais vous adresser avant demain un fichier "modifié" (extrait de 6000 lignes Excel) et vous donner les éléments que vous demandez !
Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
4 févr. 2014 à 10:38
Si cela vous convient mieux, passer le lien en message privé en cliquant sur mon pseudo.
A +
0
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014
4 févr. 2014 à 16:24
comment joindre un fichier Excel à ma réponse
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
Modifié par Vaucluse le 4/02/2014 à 17:10
Re
à déposer sur:
https://www.cjoint.com/
copier le lien donné par le site et le coller dans votre message.
A +
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
4 févr. 2014 à 17:41
Bonjour à tous,

en un peu plus court mais avec moins de contrôles :
=TEXTE(MAX(SI(ESTNUM(--STXT(A1;LIGNE(1:150);5));--STXT(A1;LIGNE(1:150);5);0));"00000")
formule matricielle à valider avec shift+ctrl+entrée

Peut suffire si il n'y a pas d'autres nombres à 4 chiffres et plus dans l'adresse.

eric
0
alaion46 Messages postés 9 Date d'inscription samedi 28 décembre 2013 Statut Membre Dernière intervention 4 février 2014
4 févr. 2014 à 19:48
Je remercie tous ceux qui ont bien voulu m'aider dans la résolution de mon problème.
Cordialement
0