So verwenden Sie den Spaltenindex (anstelle des Spaltennamens) in einer Formel.Hallo,
Ich versuche dies in einer for-Schleife zu tun:
In der aktuellen Tabelle habe ich 14 Spalten. Die Spalten Nr. 3 bis Nr. 14 wurden als „Schritt 1“ bis „Schritt 12“ bezeichnet.
In der for-Schleife möchte ich Spalte Nr. 15 erstellen (benannt als „Delta Step i“ für i = 2, i <=12, i++), die mit der Formel (Col(4) -Col(2)) berechnet wird. Dann wurde Spalte Nr. 3 gelöscht. Die gleiche Formel wird in der nächsten Iteration wiederverwendet.
Zwei Probleme hier,
1) Meine Formel funktioniert nicht, da in Spalte Nr. 15 der Ausgabetabelle kein Wert vorhanden ist.
2) Ich mache mir Sorgen, dass die Werte in Spalte 15 (eigentlich Spalte 14, nachdem Spalte 3 gelöscht wurde) verschwunden sind, sobald Spalte 3 erkannt wird.
Hier ist mein Skript.
For(i=2,i<=15,i++,
DeltaStep = "Delta Step "||Char(i);
New Column(DeltaStep)<<FORMULA></FORMULA>
Ich habe es auch versucht, aber es hat auch nicht funktioniert.
For(i=2,i<=12,i++,
DeltaStep = "Delta Step "||Char(i);
Pre = Column(3) << getname;
Pst = Column(4) << getname;
New Column(DeltaStep)<<FORMULA></FORMULA>
Betreff: So verwenden Sie den Spaltenindex (anstelle des Spaltennamens) in einer Formel.Guter Fang! Oft wird vergessen, dass Column(#) oder Column("name") für zeilenweise Berechnungen die leeren Klammern ( [] ) oder den Wrapper As Column() benötigen. Ich stelle mir die Referenz gerne als Zeiger auf den Spaltenkopf und die Attribute vor, und ref[] macht den Vektor oder die Werteliste verfügbar.
Beim Löschen von Spalten handelt es sich um eine Tabellenmeldung.Sie hätten auch die JSL unten verwenden können, ohne die Spalte vorher auszuwählen.
dt << Delete Columns( 3 );
Ein weiterer häufiger Fehler ist der Versuch, eine Spalte zu löschen, die als Argument für eine andere Spaltenformel verwendet wird.Angenommen, Spalte 4 verwendet eine Formel, die auf Spalte 3 verweist. Sie müssen die abhängige Formel in Spalte 4 entfernen, dann können Sie Spalte 3 löschen.
Dies ist ein weiterer Grund für die Verwendung von << Set Each Value(expression) vs. Formula (expression) in den meisten Fällen. Dann sind die neuen Spalten nicht gesperrt und es bestehen keine Abhängigkeiten.
Betreff: So verwenden Sie den Spaltenindex (anstelle des Spaltennamens) in einer Formel.Ich irre mich auch mit dem Ausdruck „Spalten löschen“.
Ich habe hier das richtige Skript angehängt. Bitte lassen Sie mich wissen, ob es eine bessere Möglichkeit gibt, dies zu tun.
Danke!
For(i=2,i<=12,i++,
DeltaStep = "Delta Step "||Char(i);
New Column(DeltaStep,formula(Column(4)[] - Column(3)[]));
Column(3) << Set Selected;
dt << Delete Columns
);
Betreff: So verwenden Sie den Spaltenindex (anstelle des Spaltennamens) in einer Formel.Ich glaube, ich habe herausgefunden, warum ich das nicht richtig mache ...
Für das erste Skript in meinem Beitrag sollte ich [] nach Spalte (3) hinzufügen ...
Danke,
Zihao