如何在公式中使用列索引(而不是列名称)。你好,
我试图在 for 循环中执行此操作:
在当前表中,我有 14 列。 列#3~#14 被命名为“步骤1”至“步骤12”。
在 for 循环中,我想创建第 15 列(对于 i = 2、i <=12、i++,命名为“Delta Step i”),其计算公式为 (Col(4) -Col(2))。 然后删除 Column#3。 相同的公式将在下一次迭代中重复使用。
这里有两个问题,
1) 我的公式不起作用,因为输出表的 Column#15 中没有值;
2)我担心一旦检测到第3列,第15列(实际上是第14列,第3列被删除后)中的值就会消失。
这是我的脚本。
For(i=2,i<=15,i++,
DeltaStep = "Delta Step "||Char(i);
New Column(DeltaStep)<<FORMULA></FORMULA>
我也尝试过这个,但也不起作用。
For(i=2,i<=12,i++,
DeltaStep = "Delta Step "||Char(i);
Pre = Column(3) << getname;
Pst = Column(4) << getname;
New Column(DeltaStep)<<FORMULA></FORMULA>
回复:如何在公式中使用列索引(而不是列名称)。接得好! 人们经常忘记 Column(#) 或 Column("name") 需要空括号 ( [] ) 或 As Column() 包装器来进行按行计算。 我喜欢将引用视为指向列标题和属性的指针,并且 ref[] 公开向量或值列表。
关于删除列,它是一个表消息。您也可以使用下面的 JSL,而无需事先选择列。
dt << Delete Columns( 3 );
另一个常见错误是尝试删除用作另一个列公式的参数的列。假设第 4 列使用引用第 3 列的公式。 您必须删除第 4 列中的依赖公式,然后才能删除第 3 列。
这是在大多数情况下使用 << Set Each Value(表达式) 与 Formula (表达式) 的另一个原因,那么新列不会被锁定,并且依赖性也不存在。
回复:如何在公式中使用列索引(而不是列名称)。我对“删除列”表达式也是错误的。
此处附上正确的脚本,请告诉我是否有更好的方法来执行此操作。
谢谢!
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
);
回复:如何在公式中使用列索引(而不是列名称)。我想我找到了为什么我没有正确执行此操作......
对于我帖子中的第一个脚本,我应该在 Column(3) 之后添加 []...
谢谢,
子豪