Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Extraire des chiffres d'une chaine

amgue

XLDnaute Occasionnel
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 Barbatruc
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

patricktoulon

XLDnaute Barbatruc
j'étais justement en train de travailler sur un objectif similaire
a savoir (le gauche 255 de (le droite 255 foix X))
X étant le Nieme de droite
sachant que l'on a 255 caractères espaces de marge ça devrait coller

avec toi les formules sont limpides
 

Discussions similaires

Réponses
9
Affichages
284
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…