Sommare tutte le colonne che contengono una stringa nel nome della colonna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto cercando di prendere una tabella di dati e aggiungere una colonna con una formula che sommi tutte le colonne che contengono la stringa "Aggiungi" nel nome della colonna. Sto provando a scrivere questo script perché le colonne che avranno "ToAdd" da qualche parte nel nome cambieranno.
Finora, ho lo script in grado di raccogliere tutti i nomi di colonne in un elenco, ma non sono sicuro di come utilizzare quell'elenco per generare una nuova colonna con una formula che sommi tutte quelle colonne insieme. Questo mi è sembrato il modo migliore per iniziare, ma non sono sicuro di dove andare da qui (o se è davvero un buon modo per iniziare)
dt = current data table ();
N = N Col (dt);
AddColumns = {};
Per (i = 1, i <= N, i ++,
colname = Column (i) << getname ();
Se (Contiene (nome, "Aggiungi")> 1,
Insert Into (AddColumns, colname)
);
)
);
Grazie per l'aiuto in anticipo!
Ri: somma tutte le colonne che contengono una stringa nel nome della colonnaFunziona come un fascino!
Grazie,
Daniel
Ri: somma tutte le colonne che contengono una stringa nel nome della colonnaÈ un buon inizio Per impostare le formule di colonna per script, tuttavia, è un po 'complicato in quanto l'argomento è interpretato letteralmente. Costruire una formula in modo dinamico di solito comporta la costruzione di stringhe o espressioni che vengono infine analizzate / valutate. In caso contrario, le variabili locali o specifiche della sessione finiranno nella formula e non funzioneranno come previsto. Almeno questa è la mia esperienza.
Ecco un esempio usando l'approccio string:
dt = Tabella dei dati corrente () ;
N = N Col ( dt ) ;
S = "" ;
Per ( io = 1 , io <= N , io ++,
colname = Colonna ( io ) << getName () ;
Se ( contiene ( colname , "Aggiungere" ) > 0 ,
S = S || Se ( Lunghezza ( S ) > 0 , "," , "" ) || colname
) ;
) ;
mostrare ( S ) ;
col = dt << Nuova colonna ( "Somma (AddColumns)" , numerico ) ;
Eval ( analizzare ( Eval Insert ( "col << imposta la formula (sum (^ s ^))" ) ) ) ;