Tengo una fórmula de columna que necesito reutilizar con frecuencia. El propósito de la fórmula es archivar uno o más valores de celda faltantes consecutivos con el valor anterior. Aquí está la fórmula:
While( Is Missing( Lag( :Column 1, i ) ) & Row() - i > 1, i++ );
Lag( :Column 1, i );
(La segunda cláusula en la condición While evita un bucle infinito cuando la fila 1 está en proceso de publicación). Y así es como se ve la salida cuando la fórmula está en la columna 2:

Utilizo esta fórmula tan a menudo, pensé que podría hacer que un usuario funcione a partir de ella y adjuntar el script a la tabla en el script "On Open". Aquí está mi intento de hacer que una función de usuario en un espacio de nombres de usuario:
Names Default To Here( 1 );
util = New Namespace(
"util",
{
//This function fills in missing values from the value above.
Infill = Function( {col},
{Default Local},
i = 0;
While( And( Is Missing( Lag( col, i ) ), Row() - i > 1 ), i++ );
Return( Lag( col, i ) ) ;
) ;
}
);Adjunto este script a la tabla y lo ejecuto, y luego reemplazo la fórmula explícita en la columna 2 con
util:Infill(Column 1)
Pero esto no funciona. La salida se ve así:

Parece que el ciclo While nunca se está ejecutando.
¿Puedes ayudarme con lo que está mal?