Utilisation d'une liste de colonnes pour l'entrée dans les fonctions de colonnes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'essaie de créer un script pour générer de nouvelles colonnes en fonction des entrées de l'utilisateur. La saisie provient d’une boîte de dialogue et se présente sous la forme d’une liste de noms de colonnes, par exemple:
Cols = {: Données,: Par 1, Par 2};
Je veux créer une nouvelle colonne "n" avec une formule contenant la formule du nombre de colonnes:
Nouvelle colonne ("n", formule (numéro de colonne (: Data,: By 1,: By 2)));
Cependant, je suis bloqué pour obtenir la formule:
Col Number ({: Data,: By 1,: By 2})
C'est avec accolades. Aucune erreur n'est renvoyée, mais la formule ne sera pas évaluée.
Comment utiliser la liste de colonnes comme entrée pour une fonction Col?
Le nombre de colonnes doit pouvoir varier.
Re: Utiliser une liste de colonnes pour l'entrée dans les fonctions de colonnesMerci beaucoup Votre première suggestion est la plus élégante et a résolu mon problème initial, mais votre seconde suggestion a résolu un deuxième problème que je ne posais pas encore.
Re: Utiliser une liste de colonnes pour l'entrée dans les fonctions de colonnesAlternativement, au lieu de créer une expression comme ci-dessus, le contenu de la liste peut être incorporé dans une chaîne analysable. Dans cet exemple, les accolades sont supprimées à l'aide de substituts.
Cols = { : Les données , : Par 1 , : Par 2 } ;
s = "Nouvelle colonne (\!" N \! "), Formule (Col Number (" || Remplacer ( Carboniser ( Cols ) , "{" , "" , "}" , "" ) || ")))" ;
Eval ( Analyser ( s ) ) ;
L'approche chaîne est simple et fonctionne généralement, mais le code peut être frustrant pour le débogage si les chaînes grossissent.
Re: Utiliser une liste de colonnes pour l'entrée dans les fonctions de colonnesVoici une façon de le faire:
Cols = { : Les données , : Par 1 , : Par 2 } ;
F = Expr ( Numéro de Col () ) ;
Pour ( je = 1 , je <= N articles ( Cols ) , je ++,
Insérer dans ( F , Cols [ je ] )
) ;
Nouvelle colonne ( "n" , formule ( Nom Expr ( F ) ) ) ;