Comment utiliser l'index de colonne (au lieu du nom de colonne) dans une formule.Salut,
J'essaie de le faire dans une boucle for:
Dans le tableau actuel, j'ai 14 colonnes. Les colonnes #3~#14 ont été nommées "Étape 1" à "Étape 12".
Dans la boucle for, je veux créer la colonne #15 (nommée "Delta Step i" pour i = 2, i <=12, i++), qui est calculée avec la formule (Col(4) -Col(2)). Ensuite, la colonne #3 a été supprimée. La même formule sera réutilisée dans la prochaine itération.
Deux problèmes ici,
1) ma formule ne fonctionne pas car il n'y a pas de valeur dans la colonne 15 de la table de sortie ;
2) Je crains qu'une fois la colonne 3 détectée, les valeurs de la colonne 15 (en fait la colonne 14, après la suppression de la colonne 3) disparaissent.
Voici mon scénario.
For(i=2,i<=15,i++,
DeltaStep = "Delta Step "||Char(i);
New Column(DeltaStep)<<FORMULA></FORMULA>
J'ai également essayé ceci, mais ne fonctionne pas non plus.
For(i=2,i<=12,i++,
DeltaStep = "Delta Step "||Char(i);
Pre = Column(3) << getname;
Pst = Column(4) << getname;
New Column(DeltaStep)<<FORMULA></FORMULA>
Re : Comment utiliser l'index de colonne (au lieu du nom de colonne) dans une formule.Bonne prise! Les gens oublient souvent que Column(#) ou Column("name") ont besoin des crochets vides ( [] ) ou du wrapper As Column() pour les calculs par ligne. J'aime penser à la référence comme un pointeur vers l'en-tête de colonne et les attributs et le ref[] expose le vecteur ou la liste de valeurs.
En ce qui concerne la suppression de colonnes, il s'agit d'un message de table.Vous auriez également pu utiliser le JSL ci-dessous sans sélectionner la colonne au préalable.
dt << Delete Columns( 3 );
Une autre erreur courante consiste à essayer de supprimer une colonne utilisée comme argument pour une autre formule de colonne.Supposons que Col 4 utilise une formule qui fait référence à Col 3. Vous devez supprimer la formule dépendante dans Col 4, puis vous pouvez supprimer Col 3.
C'est une autre raison d'utiliser << Définir chaque valeur (expression) par rapport à Formule (expression) dans la plupart des cas, les nouvelles colonnes ne sont pas verrouillées et les dépendances n'existent pas.
Re : Comment utiliser l'index de colonne (au lieu du nom de colonne) dans une formule.Je me trompe également pour l'expression "supprimer les colonnes".
Ci-joint le bon script ici, s'il vous plaît laissez-moi savoir s'il y a une meilleure façon de le faire.
Merci!
For(i=2,i<=12,i++,
DeltaStep = "Delta Step "||Char(i);
New Column(DeltaStep,formula(Column(4)[] - Column(3)[]));
Column(3) << Set Selected;
dt << Delete Columns
);
Re : Comment utiliser l'index de colonne (au lieu du nom de colonne) dans une formule.Je pense avoir trouvé pourquoi je ne fais pas ça correctement...
Pour le premier script de mon article, je devrais ajouter [] après la colonne (3)...
Merci,
Zihao