頻繁に再利用する必要がある列式があります。式の目的は、1つ以上の連続した欠損セル値を上記の値で入力することです。これが公式です:
While( Is Missing( Lag( :Column 1, i ) ) & Row() - i > 1, i++ );
Lag( :Column 1, i );
(While条件の2番目の節は、行1がIsMissingのときに無限ループを防ぎます。)そして、式が列2にあるときの出力は次のようになります。

私はこの式を頻繁に使用していますが、それを使ってユーザー関数を作成し、"On Open"スクリプトのテーブルにスクリプトを添付することができると思いました。ユーザーネームスペースでユーザー機能を作成しようとしています。
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 ) ) ;
) ;
}
);このスクリプトをテーブルに添付して実行した後、列2の明示的な式を次のように置き換えます。
util:Infill(Column 1)
しかしこれはうまくいきません。出力は次のようになります。

Whileループは実行されていないようです。
何が悪いのか手伝ってくれる?