Verwenden einer Liste von Spalten zur Eingabe in Col-Funktionen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich versuche, ein Skript zu erstellen, um neue Spalten basierend auf Benutzereingaben zu generieren. Die Eingabe stammt aus einem Dialogfeld und liegt in Form einer Liste von Spaltennamen vor, z.
Cols = {: Data,: By 1,: By 2};
Ich möchte eine neue Spalte "n" mit einer Formel erstellen, die die Col Number-Formel enthält:
Neue Spalte ("n", Formel (Col Number (: Data,: By 1,: By 2)));
Ich bin jedoch fest entschlossen, die Formel zu bekommen:
Col Number ({: Data,: By 1,: By 2})
das ist mit geschweifte Klammern. Es wird kein Fehler zurückgegeben, die Formel wird jedoch nicht ausgewertet.
Wie verwende ich die Spaltenliste als Eingabe für eine Col-Funktion?
Die Anzahl der Spalten muss variieren können.
Betreff: Verwenden einer Spaltenliste zur Eingabe in Col-FunktionenVielen Dank Ihr erster Vorschlag ist der elegantere und hat mein ursprüngliches Problem gelöst, aber Ihr zweiter Vorschlag hat ein zweites von mir gelöst, das ich noch nicht gestellt habe.
Betreff: Verwenden einer Spaltenliste zur Eingabe in Col-FunktionenAnstatt einen Ausdruck wie oben beschrieben zu erstellen, kann der Listeninhalt alternativ in eine analysierbare Zeichenfolge eingefügt werden. In diesem Beispiel werden die geschweiften Klammern mit einem Ersatz entfernt.
Cols = { : Daten . : Um 1 . : Um 2 } ;
s = "Neue Spalte (\!" N \! "), Formel (Col Number (" || Ersatz ( Verkohlen ( Cols ) . "{" . "" . "}" . "" ) || "))) ;
Eval ( Parse ( s ) ) ;
Der String-Ansatz ist unkompliziert und funktioniert normalerweise, aber der Debugging von Code kann frustrierend sein, wenn die Strings groß werden.
Betreff: Verwenden einer Spaltenliste zur Eingabe in Col-FunktionenHier ist eine Möglichkeit, dies zu tun:
Cols = { : Daten . : Um 1 . : Um 2 } ;
f = Ausdruck ( Col-Nummer () ) ;
Zum ( ich = 1 . ich <= N Artikel ( Cols ) . ich ++
Einfügen in ( f . Cols [ ich ] )
) ;
Neue Spalte ( "n" . Formel ( Name Ausdruck ( f ) ) ) ;