Bonjour -
Je travaille généralement avec de grands ensembles de données avec plusieurs feuilles fournies au format xls.
Je prétravaille généralement ces feuilles dans Excel avec des tableaux croisés dynamiques et des fonctions de correspondance pour combiner les multiples listes en une seule feuille principale, de sorte que chaque ligne individuelle représente un cas individuel avec plusieurs variables dans les colonnes.
Un échantillon est affiché ici - ID comme identifiant unique - poids - [Code 101, Code 102, ... sont des variables d'une autre feuille]

Voici les données à quoi elles ressemblent - non triées (!) Dans l'autre feuille - un ID correspondant spécifique, mais chaque variable spécifique (code) est présentée dans une ligne supplémentaire, potentiellement avec les mêmes ID correspondants.

Ce que je veux que JMP fasse, c'est d'ajouter ces variables (dans l'image 2) aux colonnes individuelles de la feuille maîtresse (image 1). Il ajouterait automatiquement les noms de colonne pour la variable individuelle et ajouterait également 1/0 si le code est présent oui ou non pour l'identifiant unique (ID). La variable correspondante est ID.
Lorsque j'utilise la commande "Table Join" et que je sélectionne match ID=ID , j'obtiens comme nouvelle feuille de sortie des colonnes individuelles avec les mêmes identifiants, qui ne sont pas utiles pour une analyse plus approfondie pour moi. J'aurais besoin de ces multiples colonnes empilées derrière l'ensemble actuel de variables dans la feuille principale.
Le problème devient plus délicat, car tous les identifiants uniques n'ont pas de codes répertoriés (à partir de la feuille 2), il peut donc parfois s'agir de 0 pour tous. Ou certains n'ont qu'un seul code, tandis que d'autres en ont plusieurs.
Merci beaucoup d'avoir trouvé une solution pour moi ! Marc
Salut @marc1 ,
Je pense qu'il existe un moyen simple de le faire sans impliquer de script. Commençons par le tableau A et le tableau B (ci-joint) qui ressemblent à votre situation.

Ce dont nous aurons besoin, c'est d'une table comme celle-ci à joindre à la table A :
Alors, comment y arriver? Ce que nous allons faire, c'est utiliser Tables > Fractionner sur la table B, en utilisant une version de la colonne Code comme colonne Fractionner par et en utilisant une colonne de 1 comme colonne Fractionner. Tout d'abord, nous devons créer une version de la colonne Code avec "Code : " comme texte au début (cela gardera clairs les noms de colonne que nous finirons par créer, mais ce n'est pas strictement nécessaire). Voici quelques JSL pour ajouter une telle colonne à votre table :
New Column("Code Text", Character, "Nominal", Formula("Code " || Char(:Code)));
Cela utilise une formule de colonne pour ajouter "Code : " à chaque valeur de code. Maintenant, nous avons besoin d'une colonne qui sera les valeurs du tableau final. Je vais créer une colonne appelée "Présent" et définir les valeurs sur toutes :
New Column("Present", Numeric, "Continuous", Format("Best", 12), Formula(1));
Le tableau B ressemble maintenant à ceci :
Ensuite, nous "divisons" ce tableau pour l'obtenir dans un format large avec une ligne par ID. Nous utiliserons Tables > Split et utiliserons :Code Text comme colonne Split By, :Present comme Split Columns et :ID comme colonne Group. Si vous utilisez une colonne de formule (comme je l'ai fait) pour la colonne fractionnée, assurez-vous de décocher "Copier la formule".
Cela renvoie : 
Ce qui est presque là - nous avons des blancs là où le code n'était pas présent, nous devons donc les remplacer par des 0. Nous pouvons le faire en sélectionnant toutes les colonnes de code, puis en utilisant Cols > Standardize Attributes. Ensuite, cliquez sur Recoder en haut et modifiez . à 0. Une autre option, que je trouve très rapide et parfaitement adéquate ici, consiste à utiliser un simple Rechercher et remplacer - Édition> Rechercher> Rechercher : n'utilisez rien comme "trouver quoi" et 0 comme remplacement avec, et cochez "Correspondre à la cellule entière évaluer." Cliquez sur Remplacer tout et vous avez terminé.
Nous avons maintenant un tableau avec les identifiants et la présence ou l'absence des codes. La dernière chose à faire est de mettre ces valeurs dans le tableau A. Nous pouvons utiliser Tables > Join ou Tables > Update. J'utiliserai Tables > Mettre à jour ici : 
Et voilà !
Y compris les valeurs manquantes pour les identifiants I et J que je n'avais pas dans la table Codes (ce qui signifie que cette méthode est bonne pour remarquer quand vous n'avez pas de données pour certains éléments).J'espère que cela vous aidera à démarrer dans votre situation.
@julien