#1 Thu 06 April 2023 15:30
- ploufplouf007
- Participant occasionnel
- Date d'inscription: 14 Oct 2012
- Messages: 14
Transposer une table
Bonjour.
Alors c'est pas réellement le bon terme, mais c'est l'idée...
J'ai réussi à le faire en bricolant un peu le fichier excel que j'avais en entrée, mais je n'arrive pas à trouver de solution dynamique pour le faire au sein d'un script FME...
L'idée, c'est que j'ai une table en entrée de ce type :
COMMUNE A B C D
ICI 1 2
LABAS 3 1 4
LOIN 2 1
Et j'aimerais obtenir :
COMMUNE _result
ICI A
ICI C
LABAS A
LABAS B
LABAS D
LOIN B
LOIN D
L'idée est de pouvoir le faire à la volée...
Ce que j'ai fait de mon côté, c'est que j'ai donné les valeurs des noms de champs aux cellules dans lesquelles il y avait une valeur pour ce champ.
J'ai regroupé toutes les colonnes au sein d'un champ unique dans un premier CSV avec séparateurs virgule.
J'ai collé tout ça dans une colonne à côté de la colonne des communes.
Et j'ai crée ensuite un CSV avec séparateurs point-virgule.
Ca donne :
COMMUNE ; ATTRIBUT
ICI ; A,C
LABAS ; A,B,D
LOIN ; B,D
J'ai ensuite ouvert FME, lu mon CSV, collé un attributesplitter sur la virgule, et fait un listexploder.
Tout ça fonctionne, mais c'est moche...
Vous avez une idée ?
Dernière modification par ploufplouf007 (Thu 06 April 2023 15:32)
Hors ligne
#2 Thu 06 April 2023 19:31
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 150
Re: Transposer une table
Bonjour,
Etes-vous bien conscient que vous perdez les informations numériques qui sont contenues dans la table d'origine ?
Que LABAS / A valait 3 et pas 1 ?
Pour arriver à vos fin renommez vos attributs A,B,C,D en A0,A1,A2,A3 par un AttributeRenamer bref un texte identique suivi d'un numéro d'ordre commençant par 0.
Puis un ListPopulator avec la lettre A comme préfixe ou le texte identique choisi.
Et un ListExploder pour obtenir autant d'entrées que d'éléments de liste.
En ajustant les autres paramètres vous conserverez ou supprimerez les attributs restants.
Dernière modification par Benoit D (Thu 06 April 2023 21:35)
Hors ligne