Utilizzo di un elenco di colonne per l'input delle funzioni Col<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto cercando di creare uno script per generare nuove colonne in base all'input dell'utente. L'input proviene da una finestra di dialogo ed è sotto forma di un elenco di nomi di colonne, ad esempio:
Cols = {: Data,: per 1,: per 2};
Voglio in alto creare una nuova colonna "n" con una formula contenente la formula Numero Col:
Nuova colonna ("n", formula (Numero colonna (: Dati,: per 1,: per 2)));
Tuttavia sono bloccato a ottenere la formula:
Numero colonna ({: dati,: per 1,: per 2})
questo è con parentesi graffe. Non viene restituito alcun errore, ma la formula non verrà valutata.
Come faccio a utilizzare l'elenco di colonne come input per una funzione Col?
Il numero di colonne deve poter variare.
Ri: Utilizzare un elenco di colonne per l'input per le funzioni ColGrazie mille Il tuo primo suggerimento è il più elegante e ha risolto il mio problema originale, ma il tuo secondo suggerimento ha risolto un mio secondo problema, non l'ho ancora posto.
Ri: Utilizzare un elenco di colonne per l'input per le funzioni ColIn alternativa, invece di costruire un'espressione come sopra, il contenuto dell'elenco può essere incorporato in una stringa analizzabile. In questo esempio, le parentesi graffe vengono rimosse usando il sostituto.
Cols = { : Dati , : Di 1 , : Dal 2 } ;
S = "Nuova colonna (\!" N \! ", Formula (numero di colonna (" || Sostituto ( carbonizzare ( Cols ) , "{" , "" , "}" , "" ) || ")))" ;
Eval ( analizzare ( S ) ) ;
L'approccio alla stringa è semplice e di solito funziona, ma il codice può essere frustrante per eseguire il debug se le stringhe diventano grandi.
Ri: Utilizzare un elenco di colonne per l'input per le funzioni ColEcco un modo per farlo:
Cols = { : Dati , : Di 1 , : Dal 2 } ;
f = expr ( Numero Col () ) ;
Per ( io = 1 , io <= N articoli ( Cols ) , io ++,
Inserire ( f , Cols [ io ] )
) ;
Nuova colonna ( "N" , formula ( Nome Espr ( f ) ) ) ;