XL 2016 Extraire des chiffres d'une chaine

amgue

XLDnaute Junior
Bonjour à tous,

J'aimerais extraire les chiffres 55 et 1 de la chaine de caractère suivante :

1-21000_RZT_DWB100-55-CFG-1

et les chiffres 1et 20 de la chaine caractère suivante :

G-34-7-TDP-2-1-DLS-20

Merci d'avance.
 
Solution
Bonjour @patricktoulon:),
pour la 2d formule je suis moins emballé
en effet le "-5" me tortille les boyaux car si la chaine est plus longue ça ne marche plus
il faudrait une formule plus générique pour ma besace
Et en plus Monsieur a ses exigences !!! 😜😜

Voici une autre formule (colonne B) qui est indépendante de l'autre formule et qui accepte les longueurs variables du texte (et des nombres). Voir fichier joint.
=CNUM(GAUCHE(SUBSTITUE(SUPPRESPACE(DROITE(SUBSTITUE(A2;"-";REPT(" ";255));255*3));" ";REPT(" ";255));255))

laurent950

XLDnaute Accro
Bonjour,
Par Formule :
J'aimerais extraire les chiffres
55 soit : =STXT(STXT(A1;TROUVE("|"; SUBSTITUE(A1; "-"; "|"; NBCAR(A1) - NBCAR(SUBSTITUE(A1; "-"; ""))-2))+1;255);1;NBCAR(STXT(A1;TROUVE("|"; SUBSTITUE(A1; "-"; "|"; NBCAR(A1) - NBCAR(SUBSTITUE(A1; "-"; ""))-2))+1;255))-NBCAR(STXT(A1;TROUVE("|"; SUBSTITUE(A1; "-"; "|"; NBCAR(A1) - NBCAR(SUBSTITUE(A1; "-"; ""))-1))+1;255))-1)
et
1 Soit : =STXT(A1;TROUVE("|"; SUBSTITUE(A1; "-"; "|"; NBCAR(A1) - NBCAR(SUBSTITUE(A1; "-"; ""))))+1;255)
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
Bonjour @mapomme
voir si je pige bien la formule en B1 qui nous donne le "1"
le principe ici est simple
=CNUM(SUPPRESPACE(DROITE(SUBSTITUE(A1;"-";REPT(" ";255));255)))
  1. il consiste a remplacer les caractères "-" par 255 caractères espace
  2. a récupérer la droite de 255 caractères
  3. a supprimer les espaces de la partie récupérée
  4. de convertir en numérique avec Cnum
en fait le replace de 255 caractères espace permette de déterminer un index droite réel qui permet a coup sur de contenir la partie droite désirée
une sorte de InstrRev a la James bond quoi 😁


j'ai testé avec 10 ca marche aussi
mais je suppose que 255 est une limite max de chaine et que par conséquent quoi qu'il y est après ce dernier tiret(un seul caractère ou 255 caractères on récupère bien la last chaine après le dernier tiret

et pour conclure j'ajouterait que ce stratagème est utile seulement en cas de plusieur caractères de repères dans la chaine globale
sinon je supose que le nbar(chainecomplète)-nbcar (substitue,chainecomplete;"-";""))

j'ai tout bon dans mon explication ?
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
pour la 2d formule je suis moins emballé
en effet le "-5" me tortille les boyaux car si la chaine est plus longue ça ne marche plus
il faudrait une formule plus générique pour ma besace
tu n'en a pas une avec filtre.xml par hasard ? ou autre compatible 2013
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @patricktoulon:),
pour la 2d formule je suis moins emballé
en effet le "-5" me tortille les boyaux car si la chaine est plus longue ça ne marche plus
il faudrait une formule plus générique pour ma besace
Et en plus Monsieur a ses exigences !!! 😜😜

Voici une autre formule (colonne B) qui est indépendante de l'autre formule et qui accepte les longueurs variables du texte (et des nombres). Voir fichier joint.
=CNUM(GAUCHE(SUBSTITUE(SUPPRESPACE(DROITE(SUBSTITUE(A2;"-";REPT(" ";255));255*3));" ";REPT(" ";255));255))
 

Pièces jointes

  • amgue- extraction nombres- v2.xlsx
    10.2 KB · Affichages: 17

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 267
Membres
103 168
dernier inscrit
isidore33