Additionnez toutes les colonnes qui contiennent une chaîne dans le nom de la colonne<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'essaie de prendre une table de données et d'ajouter une colonne avec une formule qui résume toutes les colonnes contenant la chaîne "ToAdd" dans le nom de la colonne. J'essaie de créer un script car les colonnes qui auront "ToAdd" quelque part dans le nom changeront.
Jusqu'à présent, j'ai le script qui peut rassembler tous les noms de colonnes dans une liste, mais je ne sais pas comment utiliser ensuite cette liste pour générer une nouvelle colonne avec une formule qui additionne toutes ces colonnes. Cela semblait être la meilleure façon de commencer, mais je ne sais pas où aller à partir de là (ou si c'est vraiment une bonne façon de commencer)
dt = table de données actuelle ();
N = N Col( dt );
Ajouter des colonnes = {} ;
Pour (i=1, i <= N, i++,
colname = Colonne(i) << getname();
Si (Contient (nom de colonne, "ToAdd") > 1,
Insérer dans (AddColumns, nom de colonne)
);
)
);
Merci d'avance pour toute aide!
Re : Additionner toutes les colonnes contenant une chaîne dans le nom de la colonneFonctionne à merveille !
Merci,
Daniel
Re : Additionner toutes les colonnes contenant une chaîne dans le nom de la colonneC'est un bon début. Cependant, définir des formules de colonnes par script est un peu délicat car l'argument est interprété littéralement. Construire une formule de manière dynamique implique généralement la création de chaînes ou d'expressions qui sont finalement analysées/évaluées. Sinon, les variables locales ou spécifiques à la session se retrouveront dans la formule et celle-ci ne fonctionnera pas comme prévu. C'est du moins mon expérience.
Voici un exemple utilisant l'approche chaîne :
dt = Tableau de données actuel () ;
N = Col N ( dt ) ;
s = "" ;
Pour ( je = 1 , je <= N , je ++,
nom de famille = Colonne ( je ) << obtenir un nom () ;
Si ( Contient ( nom de famille , "Ajouter" ) > 0 ,
s = s || Si ( Longueur ( s ) > 0 , ", " , "" ) || nom de famille
) ;
) ;
montrer ( s ) ;
col = dt << Nouvelle colonne ( "Somme (Ajouter des colonnes)" , numérique ) ;
Évaluer ( Analyser ( Insertion d'évaluation ( "col< ) ) ) ;