数据表中的公式不重新计算你好,
所以今天我遇到了公式未在数据表中更新的问题。
我有一张大桌子,上面有一堆测量值。 有一个脚本使用公式设置列来评估数据表变量中包含的规范。 这些公式是通过以下方式生成的:
Eval( Eval Expr(Column(Concat(columnName," Spec"))<< Set Formula(
If( Column(expr(columnName))[]>Expr(USL),
Column(expr(Concat(expr(columnName)," Spec")))[]="High",
If( Column(expr(columnName))[]<EXPR></EXPR>Column(expr(Concat(expr(columnName)," Spec")))[]="OK";
)
)
))); 这些公式运行良好,但它们仅在设置时才进行计算。 当我尝试更改列中的值时,不会评估规范。 我检查了列属性并启用了公式评估。 我检查公式并重新评估,然后取消选中“抑制公式评估”。
我尝试通过将“Columns”替换为“As Columns”并删除 [] 来修改此脚本。 这并没有解决问题,而且使这些公式的执行速度慢了 50%。
我尝试使用相同的模板手动设置公式,但使用实际的列名称(:Column 而不是 Column (expr (ColumnName )),并且它们确实可以正常工作。例如,每当我更改其中一列中的值时,都会对公式进行求值马上。
那么,有没有办法在修改单元格时强制重新评估呢? ** 不要单击红色按钮并重新评估数据表的所有公式 **
或者,也许另一种解决方法是使用一个脚本来写入实际的列名称(例如 :Column ),而不是使用 Eval(expr(column (columname)))。
所以它看起来像这样:

而不是看起来像这样:

有任何想法吗 ?
大规模定制质量和工艺工程回复:数据表中的公式未重新计算我无法测试它,但我认为这种方法可能有效:
Eval(
Substitute(
Expr(
nnn << Set Formula(
If(
ccc > uuu,
"High",
ccc < lll,
"Low",
"OK"
)
)
),
Expr( nnn ), Column( Concat( columnName, " Spec" ) ),
Expr( ccc ), Column( columnName ),
Expr( lll ), LSL,
Expr( uuu ), USL
)
)
);