Créer une table avec une ligne pour chaque texte séparé par une virgule dans la colonne d'un autre table

Bonjour,

J’ai une table avec une colonne qui contient la liste des noms d’un groupe de personnes. Les noms sont séparés par une virgule.
Il y a ainsi dans cette table un ligne par groupe , avec une colonne “nom du groupe“ et une colonne membres du groupe , les noms des membres sont séparés par une virgule.
Je n’ai pas le choix , mes données d’entrée sont structurées comme ça.:frowning:
Je cherche un moyen de créer automatiquement une table avec une ligne par nom , et avec une colonne nom et une colonne groupe d’appartenance.
Existe-t-il un moyen de le faire avec Grist?
merci pour votre aide.

Bonjour, ceci pourrait vous aider je pense Séparer du texte dans plusieurs lignes / dégrouper une liste

Merci

Ç est intéressant, mais ça ne répond pas complètement à mon besoin .

En effet cela ne fonctionnerait a priori que s il n y avait qu un groupe dans ma table.

Voici une solution basée sur la formule du post précédent, en 2 étapes :

1/ Répartir les noms de groupes

  • Faire une colonne “nb mails” dans la table de mails pour calculer le nb de mails par groupe (il vaudrait mieux transformer en liste et compter le nb d’éléments, que compter le nb de virgules..mais flemme)

  • Faire une table intermédiaire avec une formule qui transforme la colonne de noms de groupe en liste. La formule utilise le nb de mails par groupe pour écrire X noms de groupe s’il contient X mails.

  • dans la table finale, ajouter plein de lignes vides (il faut qu’elle soit prête à “accueillir” le résultat de la formule) et utiliser la formule pour répartir les noms de groupe dans chaque ligne

Tous_groupes.lookupOne().A.split(",")[$id - 1]

2/ Répartir les mails

Utiliser la formule pour éclater, cette fois-ci sur la colonne mails. Il faut ajouter un petit calcul pour que l’id reparte à zéro à chaque nouveau groupe.

# premier id de ce groupe
premier_id = Table1.lookupOne(groupe=$groupe).id

Mails.lookupOne(groupe=$groupe).mails.split(",")[$id - premier_id - 1]

et voilà :partying_face:

(c’était pas évident !)

L’ex est ici Ex - séparer texte sur plusieurs lignes / extraire mails document partagé - Grist

Merci, nickel!

Je vais l utiliser en transformant en liste et en comptant le nombre d éléments dans la liste.

1 « J'aime »