J'ai une formule de colonne que je dois réutiliser fréquemment. Le but de la formule est de classer une ou plusieurs valeurs de cellule manquantes consécutives avec la valeur ci-dessus. Voici la formule:
While( Is Missing( Lag( :Column 1, i ) ) & Row() - i > 1, i++ );
Lag( :Column 1, i );
(La deuxième clause de la condition While empêche une boucle infinie lorsque Row 1 IsMissing.) Voici à quoi ressemble la sortie lorsque la formule est dans la colonne 2:

J'utilise cette formule si souvent que je pensais pouvoir en faire un utilisateur et attacher le script à la table dans le script "Sur Ouvrir". Voici ma tentative de créer une fonction utilisateur dans un espace de noms utilisateur:
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 ) ) ;
) ;
}
);J'attache ce script à la table et l'exécute, puis je remplace la formule explicite de la colonne 2 par
util:Infill(Column 1)
Mais ça ne marche pas. La sortie ressemble à ceci:

Il semble que la boucle While ne s'exécute jamais.
Pouvez-vous m'aider avec ce qui ne va pas?