Extraire une chaine de caractère à partir d'une borne

Enzo051175 Messages postés 2 Date d'inscription mercredi 7 septembre 2022 Statut Membre Dernière intervention 18 décembre 2023 - 18 déc. 2023 à 11:57
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 - 19 déc. 2023 à 16:16

Bonjour,

sur mon export client, j'ai une cellule dans laquelle sont concatener les infos de nom client, de numéro de commande, numéro de facture etc...

Je souhaite pouvoir extraire ces informations la pour les mettre chacune dans une cellule, en sachant que chacune de ces infos sont dans des ordres variables dans la cellule initiale, mais que ces infos debutent par une chaine de caractère spécifique. ex : le numéro de facture débute par VF, les commandes ar VC, le nom client par "Débiteur :"

ex :  Debiteur: KER CLARA | Info Compl: CLIENT C0011395 | Libelle: CLIENT C0011395 | Reference: VF 40052311

merci pour votre aide
Windows / Edge 120.0.0.0

A voir également:

4 réponses

jee pee Messages postés 40277 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 septembre 2024 9 348
18 déc. 2023 à 12:44

Avec le texte en A1, on pourrait extraire les 4 données dans 4 cellules avec les formules suivantes :

=STXT(A1;CHERCHE("Debiteur: ";A1;1)+10;CHERCHE("|";A1&"| ";CHERCHE("Debiteur: ";A1;1))-(CHERCHE("Debiteur: ";A1;1)+10))
=STXT(A1;CHERCHE("Info Compl: CLIENT ";A1;1)+19;CHERCHE("|";A1&"| ";CHERCHE("Info Compl: CLIENT ";A1;1))-(CHERCHE("Info Compl: CLIENT ";A1;1)+19))
=STXT(A1;CHERCHE("Libelle: CLIENT ";A1;1)+16;CHERCHE("|";A1&"| ";CHERCHE("Libelle: CLIENT ";A1;1))-(CHERCHE("Libelle: CLIENT ";A1;1)+16))
=STXT(A1;CHERCHE("Reference: VF ";A1;1)+14;CHERCHE("|";A1&"| ";CHERCHE("Reference: VF ";A1;1))-(CHERCHE("Reference: VF ";A1;1)+14))

0
danielc0 Messages postés 1157 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 27 septembre 2024 133
19 déc. 2023 à 12:08

Bonjour,

Avec Excel 365, texte en A1 :

=TEXTE.AVANT(TEXTE.APRES(A1&" |";"Debiteur: ");" |")

=TEXTE.AVANT(TEXTE.APRES(A1&" |";"Info Compl: CLIENT ");" |")

=TEXTE.AVANT(TEXTE.APRES(A1&" |";"Libelle: CLIENT ");" |")

=TEXTE.AVANT(TEXTE.APRES(A1&" |";" Reference:");" |")

Daniel


0
jee pee Messages postés 40277 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 septembre 2024 9 348
19 déc. 2023 à 12:17

J'espère que ces 2 fonctions seront reprises dans un futur Office 2024 ;-)

0
danielc0 Messages postés 1157 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 27 septembre 2024 133
19 déc. 2023 à 12:33

Espérons-le. Ca simplifie bien les choses, et il y en a bien d'autres.

Daniel


0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
19 déc. 2023 à 15:45

Bonjour,

Voici ma participation,

Supposons que vous avez votre exemple dans la cellule A1,

Ceci est a mettre là où vous voulez avoir les informations entre ":" et "|"

=TRANSPOSE(CHOISIRCOLS(FRACTIONNER.TEXTE(A1;":";"|");2))

Cordialement


0
jee pee Messages postés 40277 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 septembre 2024 9 348
Modifié le 19 déc. 2023 à 16:05

CHOISIRCOLS n'existe pas dans mon Excel 2021, ni FRACTIONNER.TEXTE

Après il faut noter que le texte ne se termine pas par le séparateur |

Et surtout qu'il est indiqué que les zones peuvent apparaitre dans un ordre variable, donc il faut utiliser l'identifiant de zone, pas juste séparer les champs.

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14 > jee pee Messages postés 40277 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 septembre 2024
19 déc. 2023 à 16:16

J'ai oublié de préciser que j'utiliser office 365.

C'est juste une approche, on peut aussi trier ou les ranger si on veut, mais ce serait avec office 365. 

=trier()

ou 

=Choisircols()

Cordialement

0