Ho una formula di colonna che devo riutilizzare frequentemente. Lo scopo della formula è di inserire uno o più valori di cella mancanti consecutivi con il valore sopra. Ecco la formula:
While( Is Missing( Lag( :Column 1, i ) ) & Row() - i > 1, i++ );
Lag( :Column 1, i );
(La seconda clausola nella condizione While impedisce un loop infinito quando Row 1 IsMissing.) Ed ecco come appare l'output quando la formula è in Column 2:

Uso questa formula così spesso, ho pensato che potrei farne una funzione utente e collegare lo script alla tabella nello script "In apertura". Ecco il mio tentativo di creare una funzione utente in uno spazio dei nomi utente:
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 ) ) ;
) ;
}
);Allego questo script alla tabella ed eseguo, quindi sostituisco la formula esplicita nella colonna 2 con
util:Infill(Column 1)
Ma questo non funziona. L'output è simile a questo:

Sembra che il ciclo While non sia mai in esecuzione.
Puoi aiutarmi con ciò che è sbagliato?