XL 2016 EXTRACTION DE DONNEES NOMBRE ET TEXTE D'UNE CELLULE

AngieMot33

XLDnaute Nouveau
Bonjour,

Je rencontre un souci dans la construction d'une formule pour extraire les données d'une chaine de caractères de cellules dont le contenu est variable en terme de nombre de caractères et de format. .

Je vous joints un fichier car je pensais avoir trouvé une solution, toutefois Je tourne et retourne mes formules dans tous les sens, mais je ne tombe jamais sur le résultat parfait.

Mon fichier original contient presque 13000 lignes et mon problème se pose essentiellement sur toutes les cellules dont le code est dans le format de la cellule A4

Je remercie par avance, ceux qui se pencheront sur mon fichier !
Je vous souhaite une belle journée !
 

Pièces jointes

  • Extraire Chiffres et Texte d'une chaine de caractères.xlsx
    13.6 KB · Affichages: 11
Solution
A chaque fois la formule s'allonge et à un moment ce n'est plus raisonnable.
Mais on peut faire l'effort pour 5. :)
Voir PJ. J'ai rajouté une colonne Erreur pour bien vérifier. Aucune erreur n'est détectée. Donc si votre fichier contient bien toutes les configurations cela devrait être bon avec :
VB:
=SI(ESTNUM(CNUM(GAUCHE(A2;5)))=VRAI;GAUCHE(A2;5);
SI(ESTNUM(CNUM(GAUCHE(A2;4)))=VRAI;GAUCHE(A2;4);
SI(ESTNUM(CNUM(STXT(A2;3;1)))=VRAI;STXT(A2;3;CHERCHE("-";A2)-1);
SI(ESTNUM(CNUM(STXT(A2;4;1)))=VRAI;STXT(A2;4;CHERCHE("-";A2)-4);
SI(ESTNUM(CNUM(STXT(A2;5;1)))=VRAI;STXT(A2;5;CHERCHE("-";A2)-5);STXT(A2;5;CHERCHE("-";A2)-5))))))[/COD
[/QUOTE]

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour AngieMot,
Essayez pour voir :
VB:
En C2:
=SIERREUR(SI(ESTNUM(CNUM(GAUCHE(A2;1)))=VRAI;"";GAUCHE(A2;CHERCHE("-";A2;1)-4));"")
En D2:
=SI(ESTERREUR(CHERCHE("-";A2))=VRAI;
SIERREUR(DROITE(DROITE(SUBSTITUE(GAUCHE(A2;CHERCHE("-";A2));"-";"";1);9^9);3);A2);
STXT(A2;1;CHERCHE("-";A2)-1))
 

Pièces jointes

  • Extraire Chiffres et Texte d'une chaine de caractères (1).xlsx
    13.3 KB · Affichages: 7

AngieMot33

XLDnaute Nouveau
Bonjour AngieMot,
Essayez pour voir :
VB:
En C2:
=SIERREUR(SI(ESTNUM(CNUM(GAUCHE(A2;1)))=VRAI;"";GAUCHE(A2;CHERCHE("-";A2;1)-4));"")
En D2:
=SI(ESTERREUR(CHERCHE("-";A2))=VRAI;
SIERREUR(DROITE(DROITE(SUBSTITUE(GAUCHE(A2;CHERCHE("-";A2));"-";"";1);9^9);3);A2);
STXT(A2;1;CHERCHE("-";A2)-1))
Bonjour Sylvanu, merci beaucoup. Parfait pour les résultats des Cellules C et E ! Toutefois le résultat des cellules D7, D8, D10 à D11 n'est pas celui espéré, car je souhaiterais que cela me ramène que 032 en D7 par exemple.
D'où ma difficulté ... 3 jours que je suis dessus et que je m'arrache les cheveux o_O... à chaque fois
 

Pièces jointes

  • Extraire Chiffres et Texte d'une chaine de caractères (1).xlsx
    13.6 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Désolé, je n'ai pas fait attention. Je me suis focalisé sur les cellules rouges sans vérifier les autres. :(
En PJ ça à l'air de fonctionner avec :
VB:
=SI(ESTNUM(CNUM(GAUCHE(A2;1)))=VRAI;GAUCHE(A2;4);
SI(ESTNUM(CNUM(STXT(A2;3;1)))=VRAI;STXT(A2;3;CHERCHE("-";A2)-1);
SI(ESTNUM(CNUM(STXT(A2;4;1)))=VRAI;STXT(A2;4;CHERCHE("-";A2)-4);STXT(A2;5;CHERCHE("-";A2)-5))))
Par contre cela ne marche que si on a une racine qui ne fasse que 0, 3 ou 4 caractères. ( mais cela semble être le cas dans votre fichier, sinon cela sera plus simple de traiter en VBA )
 

Pièces jointes

  • Extraire Chiffres et Texte d'une chaine de caractères (1) (2).xlsx
    13.4 KB · Affichages: 6

AngieMot33

XLDnaute Nouveau
Désolé, je n'ai pas fait attention. Je me suis focalisé sur les cellules rouges sans vérifier les autres. :(
En PJ ça à l'air de fonctionner avec :
VB:
=SI(ESTNUM(CNUM(GAUCHE(A2;1)))=VRAI;GAUCHE(A2;4);
SI(ESTNUM(CNUM(STXT(A2;3;1)))=VRAI;STXT(A2;3;CHERCHE("-";A2)-1);
SI(ESTNUM(CNUM(STXT(A2;4;1)))=VRAI;STXT(A2;4;CHERCHE("-";A2)-4);STXT(A2;5;CHERCHE("-";A2)-5))))
Par contre cela ne marche que si on a une racine qui ne fasse que 0, 3 ou 4 caractères. ( mais cela semble être le cas dans votre fichier, sinon cela sera plus simple de traiter en VBA )
 

AngieMot33

XLDnaute Nouveau
Bonjour !

A mon tour de m'excuser, car en effet la racine de mes codes peut aller jusqu'à 5 caractères maximum. Je pensais avoir mis tous les cas de figure dans l'extrait.
Je suis désolée ! 😕Et donc si il faut traiter en VBA... je n'y connais rien ... En tout cas mille merci pour le temps passé sur mon souci jusqu'à présent... C'est là que je vois que mon niveau sur Excel est encore bien faible 😓
 

Pièces jointes

  • Extraire Chiffres et Texte d'une chaine de caractères(2).xlsx
    16.2 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Par contre cela ne marche que si on a une racine qui ne fasse que 0, 3 ou 4 caractères.
A chaque fois la formule s'allonge et à un moment ce n'est plus raisonnable.
Mais on peut faire l'effort pour 5. :)
Voir PJ. J'ai rajouté une colonne Erreur pour bien vérifier. Aucune erreur n'est détectée. Donc si votre fichier contient bien toutes les configurations cela devrait être bon avec :
VB:
=SI(ESTNUM(CNUM(GAUCHE(A2;5)))=VRAI;GAUCHE(A2;5);
SI(ESTNUM(CNUM(GAUCHE(A2;4)))=VRAI;GAUCHE(A2;4);
SI(ESTNUM(CNUM(STXT(A2;3;1)))=VRAI;STXT(A2;3;CHERCHE("-";A2)-1);
SI(ESTNUM(CNUM(STXT(A2;4;1)))=VRAI;STXT(A2;4;CHERCHE("-";A2)-4);
SI(ESTNUM(CNUM(STXT(A2;5;1)))=VRAI;STXT(A2;5;CHERCHE("-";A2)-5);STXT(A2;5;CHERCHE("-";A2)-5))))))
 

Pièces jointes

  • Extraire Chiffres et Texte d'une chaine de caractères(3).xlsx
    16.7 KB · Affichages: 10

AngieMot33

XLDnaute Nouveau
A chaque fois la formule s'allonge et à un moment ce n'est plus raisonnable.
Mais on peut faire l'effort pour 5. :)
Voir PJ. J'ai rajouté une colonne Erreur pour bien vérifier. Aucune erreur n'est détectée. Donc si votre fichier contient bien toutes les configurations cela devrait être bon avec :
VB:
=SI(ESTNUM(CNUM(GAUCHE(A2;5)))=VRAI;GAUCHE(A2;5);
SI(ESTNUM(CNUM(GAUCHE(A2;4)))=VRAI;GAUCHE(A2;4);
SI(ESTNUM(CNUM(STXT(A2;3;1)))=VRAI;STXT(A2;3;CHERCHE("-";A2)-1);
SI(ESTNUM(CNUM(STXT(A2;4;1)))=VRAI;STXT(A2;4;CHERCHE("-";A2)-4);
SI(ESTNUM(CNUM(STXT(A2;5;1)))=VRAI;STXT(A2;5;CHERCHE("-";A2)-5);STXT(A2;5;CHERCHE("-";A2)-5))))))[/COD
[/QUOTE]
 

AngieMot33

XLDnaute Nouveau
Bonjour Sylvanu !

Wouah !!! Merci beaucoup c'est parfait ! Je vous souhaite une très belle journée ! Maintenant je vais décortiquer pour comprendre et pouvoir le refaire seule si je suis à nouveau confrontée à ce type d'extraction !!!
Encore mille mercis !
 

Discussions similaires