Salut la communauté JMP, je recherche une solution pour faciliter la copie, en une seule fois, d'une colonne plusieurs fois (dans l'exemple ci-dessous j'ai choisi 6 fois), mais toutes les données doivent descendre d'une ligne à chaque nouvelle colonne copiée. créé? Merci pour votre aide!

Vous avez déjà deux bonnes solutions (dont une marquée comme solution), mais il existe également une autre manière interactive et rapide de le faire, que les gens oublient parfois. Sélectionnez la colonne d'origine et cliquez avec le bouton droit sur l'en-tête de colonne en choisissant Nouvelle formule de colonne > Ligne > Décalage multiple. Dans la boîte de dialogue, indiquez le premier décalage sur 1 et le dernier décalage sur 6.
je suis d'accord avec @julien en ce sens, je ne comprends pas pourquoi vous avez un tel besoin, mais vous trouverez ci-dessous les étapes qui vous permettraient de le faire de manière interactive.
- Copiez toutes les valeurs de la colonne 1 dans le tampon de collage.
- Faites un clic droit sur l'une des lignes de la colonne rowstate (la colonne avec les numéros de ligne) et sélectionnez "Ajouter des lignes".
- Dans la boîte de dialogue Ajouter des lignes, sélectionnez 6 lignes à ajouter à la fin.
- Accédez à l'en-tête de colonne vide à côté de l'en-tête de la première colonne, faites un clic droit et sélectionnez "Nouvelles colonnes".
- Dans la boîte de dialogue Nouvelles colonnes, précisez que vous souhaitez ajouter 6 colonnes
- Une fois les colonnes créées, accédez à la deuxième cellule de la première nouvelle colonne et collez les valeurs du tampon de collage dans la cellule.Il copiera toutes les données à partir de la cellule (ligne) 2.
- Répétez cette opération pour chaque nouvelle colonne, en descendant d'une ligne pour chaque nouvelle colonne.
Salut @WernerL ,
Vous trouverez ci-dessous un code pour ce faire (écrire des valeurs ou des formules de colonnes), mais puis-je demander pourquoi avez-vous besoin de créer un tableau comme celui-ci ? Si vous devez effectuer certaines opérations par ligne avec une valeur dans une ligne précédente à partir d'une colonne précédente, il existe des moyens plus efficaces que de créer explicitement ces colonnes de décalage.
Ce formulaire écrit des valeurs :
dt = Open("$SAMPLE_DATA\Big Class.jmp");
baseCol = Column("height");
nCopies = 6;
For( i = 1, i <= nCopies, i++,
spacerMat = J( i, 1, . );
valuesMat = spacerMat |/ Eval( baseCol << Get Values );
New Column( "Copy " || char(i), Numeric, "Continuous", Set Values( valuesMat ) );
);
Ce formulaire écrit des formules de colonnes :
dt = Open("$SAMPLE_DATA\Big Class.jmp");
baseCol = Column("height");
nCopies = 6;
For( i = 1, i <= nCopies, i++,
Eval(Substitute( Expr( New Column( "Copy " || Char( i ), Numeric, "Continuous", Formula( Lag( Subscript(xxCol,row()), i ) ) ) ), Expr( i ), i, expr(xxCol), baseCol ))
);
J'espère que cela vous aidera à démarrer !
@julien
//Edit 24/11/19 : correction de la version de la formule de colonne pour substituer correctement la colonne définie au début du script dans la formule de colonne