Extraire une chaîne entre plusieurs virgules et après la virgule

Bonjour le forum,

Le but est d'extraire la chaîne de caractères en [B] vers [C] [D] [E] [F] mais la structure de la chaîne de caractères est aléatoire car elle se décompose

Nom du Département {,} Code Postal { } Ville {,} Adresse

mais par moment nous pourrions avoir une chaîne :

Nom du Département {,} Code Postal { } Ville

ou

Vide
zone rouge erreur

La ZONE ROUGE en E sont des erreurs avec la même formule dans des cas différents et il faudra que toutes la zones soient résolu dans toutes ses conditions

Donc j'ai rectifié certaine formule mais je sèche plus que sur [E] "VILLE" car si il n'y a pas d'adresse alors il n'y a pas de virgule

C:=SIERREUR(STXT(B29;SIERREUR(TROUVE(CAR(1);SUBSTITUE(B29;",";CAR(1);1));"")+1;SIERREUR(TROUVE(CAR(1);SUBSTITUE(B29;",";CAR(1);2));"")-SIERREUR(TROUVE(CAR(1);SUBSTITUE(B29;",";CAR(1);1));"")-1);"")

D:=SIERREUR(STXT(B29;EQUIV(1;(ESTNUM(STXT((B29);LIGNE(INDIRECT("1:"&NBCAR(B29)));1)*10000))*1;0);5);"")

E:=SIERREUR(SUBSTITUE(STXT(B29;SIERREUR(TROUVE(CAR(1);SUBSTITUE(B29;",";CAR(1);2));"")+1;SIERREUR(TROUVE(CAR(1);SUBSTITUE(B29;",";CAR(1);3));"")-SIERREUR(TROUVE(CAR(1);SUBSTITUE(B29;",";CAR(1);2));"")-1);D29&" ";"");"")

F:=SIERREUR(STXT(B29;CHERCHE("§";SUBSTITUE(B29;",";"§";NBCAR(B29)-NBCAR(SUBSTITUE(B29;",";""))))+1;99);"")

mais il ne prenait pas si la cellule était vide

F:SI(E29="";"";(SIERREUR(STXT(B29;CHERCHE("§";SUBSTITUE(B29;",";"§";NBCAR(B29)-NBCAR(SUBSTITUE(B29;",";""))))+1;99);"")))

Je joins le fichier ci-dessous :

Alors comment Extraire la Ville après un [ESPACE] quand la chaîne de caractères n'est pas suivi de la [Virgule] et quand elle est suivi de la [Virgule] aussi mais alors elle est suivi d'une chaîne de caractères avec des [ESPACE] ?

Bonjour Le_Troll_Du_27,

Voyez ce que vous pouvez tirer du fichier joint

bonjour njhud, bonjour le forum,

j'ai regardé ta solution mais désolé libreoffice je ne comprend pas

=@_xlfn.ORG LIBREOFFICE.REGEX

c'est du chinois

Donjour Le_Troll_Bu_27,

=GAUCHE(DROITE(B4;NBCAR(B4)-(NBCAR(C4)+8));5)

pour remplacer

=REGEX(B4;"[:digit:]{5}")

que votre tableur n'arrive pas à interpréter

Voyez dans le fichier joint

Bonjour njhub, Bonjour le fil, Bonjour le Forum

Alors j'ai regardé ton fichier corrigé en Excel est j'ai adoré ce qu m'a proposé.

Donc voici ce que j'au retenu est qui fonctionne quel se soit la condition avec un mixte de ce que j'avais :

CODE POSTAL=SIERREUR(STXT(B13;EQUIV(1;(ESTNUM(STXT((B13);LIGNE(INDIRECT("1:"&NBCAR(B13)));1)*10000))*1;0);5);"")                                                                            
VILLE=SI(TROUVE(D13;B13)+5>NBCAR(B13);"";SIERREUR(GAUCHE(DROITE(B13;NBCAR(B13)-(TROUVE(D13;B13)+5));TROUVE(",";DROITE(B13;NBCAR(B13)-(TROUVE(D13;B13)+5)))-1);DROITE(B13;NBCAR(B13)-(TROUVE(D13;B13)+5))))                                                                            
ADRESSE=SI(E13="";"";SIERREUR(DROITE(B13;NBCAR(B13)-(TROUVE(D13;B13)+5)-NBCAR(E13)-1);""))

Par contre

DÉPARTEMENT=SIERREUR(GAUCHE(SUBSTITUE(B18;"France,";"");TROUVE(",";SUBSTITUE(B18;"France,";""))-1);"")

quand seul le département est inscrit.

J'ai donc joint le fichier ci-dessous, l'encadrement en vert est corrigé de façon définitive et reste donc la première colonne [B] barré en rouge à trouver

Cordialement

Laurent

Bonjour Le_Troll_Du_27,

Je passe la main, s'évertuer à vouloir résoudre un problème qui n'existe pas, par des formules me dépasse.

Je perds mon temps à vous indiquer la voie de l'importation de vos données en fichier .txt ou .csv avec la virgule comme filtre d'importation.

C'est la solution la plus simple, efficace et rapide que je connaisse.

Faites moi parvenir votre fichier original au format.txt ou .csv en MP, après trois minutes de manipulations il sera à votre disposition au format .xlxs

Ca fait trois jours que ce pseudo problème nous mine, contre trois minutes de traitement...

A vous de voir

Bonjour njhub, le fil, le forum

Je suis désolé si je suis pointilleux mais une formule fonctionne quand elle peut répondre à toutes les circonstances.

Ensuite si vous regardez de plus près le fichier que je partage à chaque nouveau sujet, vous auriez vu dans l'onglet CSV le fichier original anonymisé réduit au plus simple ainsi que l'onglet GEDCOM avec les 4*9 colonnes que j'impose

Cordialement

Laurent

Rechercher des sujets similaires à "extraire chaine entre virgules virgule"