Hola
Así que hoy tengo un problema con las fórmulas que no se actualizan en mi tabla de datos.
Tengo una mesa grande con un montón de medidas. Hay un script que establece columnas con fórmulas para evaluar las especificaciones contenidas en las variables de la tabla de datos. Estas fórmulas se generan de la siguiente manera:
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";
)
)
))); Estas fórmulas funcionan bien pero solo se evalúan cuando están configuradas. Cuando intento cambiar un valor en una columna, la especificación no se evalúa. Revisé las propiedades de la columna y las evaluaciones de fórmulas están habilitadas. Las fórmulas vuelven a evaluar. Yo verifico y luego desmarco la opción "Suprimir evaluación de fórmulas".
Traté de modificar este script reemplazando "Columnas" con "Como columnas" y quitando el []. Esto no resolvió el problema e hizo que la implementación de estas fórmulas fuera un 50% más lenta.
Traté de configurar manualmente fórmulas con la misma plantilla pero usando los nombres de columna reales (: Columna en lugar de Columna (expr (ColumnName)) y funcionan correctamente. por ejemplo, cada vez que cambio un valor en una de las columnas, la fórmula se evalúa de inmediato.
Entonces, ¿hay alguna manera de forzar la reevaluación al modificar las celdas? ** NO hacer clic en el botón rojo y reevaluar todas las fórmulas de la tabla de datos **
O tal vez otra solución sería tener un script que escriba los nombres reales de las columnas (por ejemplo: Column) en lugar de tener Eval (expr (column (columnname))).
Entonces se ve así:

en lugar de verse así:

Algunas ideas ?
No puedo probarlo, pero creo que este enfoque podría funcionar:
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
)
)
);