Usando una lista de columnas para la entrada a las funciones Col<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy tratando de crear una secuencia de comandos para generar nuevas columnas basadas en la entrada del usuario. La entrada proviene de un cuadro de diálogo y tiene la forma de una lista de nombres de columna, por ejemplo:
Cols = {: Data,: By 1,: By 2};
Quiero crear una nueva columna "n" con una fórmula que contenga la fórmula del Número de Col:
Nueva columna ("n", fórmula (Número de columna (: Datos,: Por 1,: Por 2)));
Sin embargo estoy atascado en conseguir la fórmula:
Número de col ({: Datos,: Por 1,: Por 2})
es decir con corchetes No se devuelve ningún error, pero la fórmula no se evaluará.
¿Cómo uso la lista de columnas como entrada para una función Col?
Se debe permitir que la cantidad de columnas varíe.
Re: Usando una lista de columnas para la entrada a las funciones ColMuchas gracias Tu primera sugerencia es la más elegante y resolvió mi problema original, pero tu segunda sugerencia resolvió un segundo problema mío que aún no posé.
Re: Usando una lista de columnas para la entrada a las funciones ColAlternativamente, en lugar de crear una Expresión como anteriormente, el contenido de la lista puede incorporarse en una cadena analizable. En este ejemplo, las llaves se eliminan utilizando un sustituto.
Cols = { : Datos , : Por 1 , : Por 2 } ;
s = "Nueva columna (\!" N \! ", Fórmula (Número de columna (" || Sustituir ( Carbonizarse ( Cols ) , "{" , "" , "}" , "" ) || ")))" ;
Evaluar ( Analizar gramaticalmente ( s ) ) ;
El enfoque de cadena es sencillo y suele funcionar, pero el código puede ser frustrante para depurar si las cadenas crecen.
Re: Usando una lista de columnas para la entrada a las funciones ColAquí hay una forma de hacerlo:
Cols = { : Datos , : Por 1 , : Por 2 } ;
F = Expr ( Número de col () ) ;
por ( yo = 1 , yo <= N artículos ( Cols ) , yo ++,
Insertar en ( F , Cols El yo ] )
) ;
Nueva Columna ( "norte" , fórmula ( Nombre Expr ( F ) ) ) ;