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
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
A voir également:
- Identification d'une suite de chiffre
- Excel trier par ordre croissant chiffre - Guide
- Entrer les informations d'identification reseau - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Clavier iphone chiffre et lettre - Guide
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
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
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
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
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
Je vais essayer...
Mais, n'étant pas un spécialiste d'Excel, cela risque d'être long !
Je vous tiens au courant !
Cordialement
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
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) ?
=INDEX(A1:Y1;EQUIV(MAX(A1:Y1);A1;Y1;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
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
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
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
3 févr. 2014 à 11:48
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
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
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
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
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
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
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
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
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
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
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
4 févr. 2014 à 10:38
Si cela vous convient mieux, passer le lien en message privé en cliquant sur mon pseudo.
A +
A +
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
4 févr. 2014 à 16:24
comment joindre un fichier Excel à ma réponse
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
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 +
à déposer sur:
https://www.cjoint.com/
copier le lien donné par le site et le coller dans votre message.
A +
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
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
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
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
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
Cordialement
3 févr. 2014 à 11:26
=INDEX(A1:Y1;EQUIV(MAX(A1:Y1);A1;Y1;0)