Identification d'une suite de chiffre
Résolu
alaion46
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
alaion46 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
alaion46 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Identification d'une suite de chiffre
- Excel trier par ordre croissant chiffre - Guide
- Clavier iphone chiffre et lettre - Guide
- Entrer les informations d'identification reseau - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Chiffre en lettre - Télécharger - Outils professionnels
13 réponses
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
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
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
Je vais essayer...
Mais, n'étant pas un spécialiste d'Excel, cela risque d'être long !
Je vous tiens au courant !
Cordialement
... 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
C'est une faute de frappe de ma spécialité
excuses
crdlmnt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour à tous,
une proposition de formule matricielle (à valider par CTRL+MAJ+ENTER) :
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
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
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
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
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
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
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
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
Re
à déposer sur:
https://www.cjoint.com/
copier le lien donné par le site et le coller dans votre message.
A +
à déposer sur:
https://www.cjoint.com/
copier le lien donné par le site et le coller dans votre message.
A +
=INDEX(A1:Y1;EQUIV(MAX(A1:Y1);A1;Y1;0)