XL 2016 Extraire des chiffres d'une chaine

  • Initiateur de la discussion Initiateur de la discussion amgue
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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))
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:
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:
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour