Entraire une chaine entre 2 virgules sans macro

Bonjour le forum

Je voudrai extraire un ensemble de mots entre de 2 "," selon la 1ère "," ou 2ème ou 3ème Etc.

Exemple :

ABCDEF
1 TITREDEPTCPVILLEADRESSECOMPLMT
2 France,Seine Maritime,76190 Allouville Bellefosse,2 Rue Jacques Anquetil,1er Étage appt 745..........................................................................................
3

Cela c'est pour la première valeur avant la virgule

=SIERREUR(GAUCHE($B2;CHERCHE(",";$B2)-1);"")

= France

B2 = Pour extraire la 2ème valeur entre les virgules 1 & 2
?
C2 = Pour extraire la 3ème valeur entre les virgules 2 & 3
?
D2 = Pour extraire la 4ème valeur entre les virgules 3 & 4
?
E2 = Pour extraire la 5ème valeur entre les virgules 4 & 5
?
F2 = Pour extraire la dernière valeur apres la 5ème virgule
?

J'essaye avec les Fonctions STXT, GAUCHE, DROITE, TROUVE, NBCAR, SUBSTITUE mais je sèche totalement

Cordialement

Bonjour,

Ci-joint ton fichier test format Excel ...

En espèrant que cela t'aide

Bonjour James007, bonjour le Forum,

J'ai ouvert ton fichier et ton approche est bonne mais certaines formules ne peuvent pas intégrer le Tableau.

Je me suis rendu compte que mon explication sans joindre de fichier aurai dû être beaucoup plus concis et précis.

Alors j'ai repris ton fichier et je l'ai modulé car qu'importe la où le tableau est car il fera parti d'un ensemble de données beaucoup plus grand.

J'ai mis quel explication sur le tableau et il faut séparer "CODE POSTAL" et "VILLE" dans des colonnes différentes.

Je te joins le fichier ci dessous

12test-letroll27.xlsx (21.54 Ko)

Cordialement

Laurent

Re,

Ci-joint ta version 2 ... à tester ...

La difficulté que je découvre est que tu as des intitulés qui ont un nombre inégal de virgules ....

Je ne sais pas du tout si Calc te permet de surmonter cet obstacle ...

Bonjour Le_Troll_Du_27, James007

Il me semble que le fichier initial est du type ".csv" ou ".txt", il suffit de l'importer avec les bonnes options, càd utiliser la virgule comme séparateur de texte pour que votre tableur affiche correctement le résultat.

Quelle est l'adresse de téléchargement du fichier initial?

Bonjour njhub & James007, bonjour le forum

Le fichier Initiale est un GedCom de mon arbre généalogie donc pas anonymisé

Ensuite je pensais James007 fermé la phrase de la colonne [B] par un point afin que la dernière colonne ainsi que les autres si point après la avoir Deconcatener le dernier mot de la phrase il y a un POINT alors ne pas passer à la suivante

C'est ce qui permettra d'avoir un mot à extraire entre 2 caractères "," & "." pour ne pas à avoir comme résultat #Valeur

Bonjour Le_Troll_Du_27, James007

Pour concrétiser, j'ai téléchargé un fichier .ged, puis je l'ai enregistré sous .csv

Après quoi je l'ai ouvert dans mon tableur, le résultat en PJ

24genealogie.csv (17.33 Ko)

Bonjour le Forum,

J'avance mais c'est assez complexe :

Pour ce qui est extraire du début de phrase jusqu'à la virgule la formule en C2 était :

=STXT(B9;1;SIERREUR(TROUVE(CAR(1);SUBSTITUE(B9;",";CAR(1);1));"")-1)

Depuis j'ai trouvé plus simple comme cela :

=GAUCHE(B22;TROUVE(",";B22)-1)

Il suffit de rajouter SIERREUR pour éviter d'avoir ce message #VALEUR! quand il n'y a aucune données

Pour extraire dans la dernière Colonne alors là c'est plus délicat car avec cette formule nous n'avons rien si il n'y a pas de virgule en dernier caractère :

=STXT(B9;SIERREUR(TROUVE(CAR(1);SUBSTITUE(B9;",";CAR(1);4));"")+1;NBCAR(B9)-SIERREUR(TROUVE(CAR(1);SUBSTITUE(B9;",";CAR(1);4));""))

Donc j'ai résolu en parti avec :

=STXT(B21;CHERCHE("§";SUBSTITUE(B21;",";"§";NBCAR(B21)-NBCAR(SUBSTITUE(B21;",";""))))+1;99)

Mais le problème maintenant vient de la valeur dans la première Colonne si elle est incomplète.

Je joins le fichier ci-dessous :

Et pour les autres colonnes intermédiaires c'est le manque de virgule pour récupérer la donnée.

Cordialement

Laurent

Ps: J'ai ajouté deux onglet pour njhub un le GEDCOM sous CSV et le GEDCOM converti avec les colonnes de cet interrogation

Bonjour,

Pour manuellement ' pièger ' les formules d'extraction ... tu peux ajouter deux ou trois virgules aux libellés ...

Bonjour James007, bonjour le Forum

C'est rectifié

Cordialement

Bonjour,

Essaie Power Query.

Il va te permettre très simplement de transformer (splitter) la chaîne de caractères avec ton délimitateur, en colonnes distinctes.

Cdlt

Salut Jean-Eric,

Par simple curiosité ... est-ce-que Power Query fonctionne également avec Calc ... ?

Re,

Bonjour James007,

Power Query ne peut pas fonctionner avec Calc.

Maintenant, il est fort possible que Calc possède une fonction du type TEXT.JOIN() disponible pour Excel 365.

Cdlt.

https://support.office.com/en-us/article/textjoin-function-357b449a-ec91-49d0-80c3-0e8fc845691c?NS=EXCEL&Version=90&SysLcid=1033&UiLcid=1033&AppVer=ZXL900&HelpId=xlmain11.chm60653&ui=en-US&rs=en-US&ad=US

Bonjour le fil, bonjour le forum

Je clos ce sujet car je ne suis aperçu de nombreuses erreurs

Content que tu aies pu résoudre ton problème ...

Rechercher des sujets similaires à "entraire chaine entre virgules macro"