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

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 !

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

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]
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

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 😵... à chaque fois
 

Pièces jointes

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

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

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

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]
 
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 !
 
- 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