Calc : Supprimer une virgule en fin de champ

Bonjour, j’ai concaténé 6 cellules en une seule avec une virgule entre chaque contenu avec =A1&","&B1","&C1&",’ etc
Cela a bien fonctionné mais certaines cellules étant vides, je me retrouve avec une virgule à la fin pour certaines. J’ai commencé à les supprimer à la main, mais le fichier faisant plus de 3000 lignes, c’est légèrement fastidieux.
J’ai cherché alors comment le faire avec une formule mais je n’en ai trouvé qu’une pour Excel et elle ne fonctionne pas = GAUCHE (A1, LEN (A1) - (DROITE (A1) = “,”)).
Je ne peux pas non plus utiliser le rechercher/remplacer car cela supprimerait toutes les virgules entre mes données.
J’ai bien trouvé une formule permettant de supprimer le dernier caractère, mais cela supprimerait le dernier caractère du texte si pas de virgule à la fin.
Quelle serait la formule magique pour Calc ? De préférence pas une macro mais un truc que je peux écrire dans une nouvelle cellule. Les macros, c’est un peu du chinois pour moi.

Merci d’avance !

Bonjour kamilane,

essayez avec :
=SI(CODE(DROITE(A2;1))=44;GAUCHE(A2;NBCAR(A2)-1);A2)

Cette formule va chercher le code du dernier caractère à droite dans A2
Si le code correspond à la virgule (44), on ne retranscrit qu’une partie de A2
celle qui précède la virgule si elle est en dernière position DROITE(A2;1).
:wink:

Super, merci, ça a fonctionné nickel !

Bonjour
utiliser la formule :
=TEXTJOIN(",";1;A2:F2)
(malheureusement je ne connais pas le nom français de la fonction)

1 Like

Bonjour karolus, kamaldine,

la fonction en français en utilisant votre formule : =JOINDRE.TEXTE(",";1;A2:F2)

:wink:

Bonjour,

Justement, le plus efficace dans ce cas est l’utilisation du “rechercher - remplacer”. La solution est simple, il suffit d’utiliser les expressions régulières (motifs).
Pour retirer la dernière virgule de toutes les cellules, procéder comme suit :

  1. Sélectionner la zone de travail,
  2. Ouvrir le dialogue “rechercher - remplacer”,
  3. Cocher la case “Expressions régulières,
  4. Saisir “,$” dans le champ “Rechercher (sans les “”), car “$” veut dire “fin de ligne” donc “fin de cellule”,
  5. Laisser vide le champ “Par,
  6. Cliquer sur “Tout remplacer”.

Cela doit être suffisant.

Bonne soirée,
Luc.

Merci, je vais utiliser ça pour mon prochain fichier. Sur celui-ci, comme j’avais des lignes avec 6 virgules, d’autres avec 5, d’autres avec 4 etc jusque 1 car certains champs étaient vides, j’avais fait simplement un chercher/remplacer avec 6 virgules puis 5, etc, mais j’avais dû louper une étape car il restait des lignes finissant par 1 virgule.
Donc, pour mon prochain fichier, je vais me retrouver aussi avec un certain nombre de virgules à la fin. Je suppose alors que j’applique cette expression avec chaque fois le nombre de virgules correspondant ? Ou cette expression va me supprimer d’un coup toutes les virgules à la fin ?

Bonjour,

[kamilane] kamilane https://ask.libreoffice.org/u/kamilane
October 8


Donc, pour mon prochain fichier, je vais me retrouver aussi avec un
certain nombre de virgules à la fin. Je suppose alors que j’applique
cette expression avec chaque fois le nombre de virgules correspondant
? Ou cette expression va me supprimer d’un coup toutes les virgules à
la fin ?

Cette formule ne supprime que les virgules situées en fin de cellule.

Bonne journée,

Luc.

ok, mais quel que soit le nombre de virgules ? qu’il y en ait 1, 2, ou 6 en fin de ligne, la formule les supprime toutes ? ou faut-il mettre autant de virgules que ce qu’il y a à supprimer (pardon mais je préfère reposer la question que de faire une bêtise)

pourquoi ne pas faire avec la prochaine fois, comme cela a déjà été suggéré :

=JOINDRE.TEXTE(",";1;A2:H2)

Cela rendra tout remaniement inutile !

Bonjour,

kamilane
October 10

ok, mais quel que soit le nombre de virgules ? qu’il y en ait 1, 2, ou 6 en fin de ligne, la formule les supprime toutes ? ou faut-il mettre autant de virgules que ce qu’il y a à supprimer (pardon mais je préfère reposer la question que de faire une bêtise)

Si vous voulez supprimer toutes les “,” en fin de cellule, la formule à rechercher est “,*$” (sans les “”), où :

  • ‘,’ est le caractère à rechercher,

  • ‘*’ indique quel qu’en soit le nombre. On peut aussi rentrer ‘{1,}’ pour dire une virgule ou plus

  • ‘$’ indique la fin de la cellule

Bonne journée,

Luc.