Cycle détecté pour la colonne de données<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour à tous
Je crée un modèle qui nécessite un "retour de boucle", et cela me donne cette erreur :

Savez-vous comment le contourner ?
Je n'ai pas ce problème dans Excel en utilisant les mêmes formules
Merci,
-José
MISE À JOUR:
J'ai pu le faire fonctionner, mais il n'exécutera la formule que sur une ligne à la fois.
Je joins le script de table pour référence.
Vous verrez que deux colonnes dépendent l’une de l’autre.
n*Zr*S(ti) = saturation du sol en début de journée
n*Zr*S(ti-) = saturation du sol en fin de journée
Puis pour n*Zr*S(ti), j'ai besoin de la valeur de n*Zr*S(ti-) pour la journée précédente [chaque jour est une ligne].
Le problème que j'ai c'est maintenant : chaque fois que je clique sur "appliquer" dans l'éditeur de formule pour n*Zr*S(ti-) [ou n*Zr*S(ti) ] , J'obtiens l'erreur Cycle détecté, puis j'appuie sur Ignorer tous les cycles et le formule s'exécute pour toutes les colonnes, jusqu'à ce que le n*Zr*S(ti) colonne. Si je répète ce processus, JMP calcule n*Zr*S(ti), et n*Zr*S(ti-), est calculé automatiquement [car n*Zr*S(ti)] est nécessaire pour le lendemain n*Zr*S(ti-).
Existe-t-il un moyen de dire à JMP « si cette cellule n'a pas été calculée, utilisez cette autre valeur en attendant », puis « si cette autre cellule a une valeur, mettez à jour cette autre » ?
Toute aide serait appréciée.
-José L.
Re : Cycle détecté pour la colonne de donnéesJL,
Voici le script qui ouvre l'exemple de table de données "Big Class", que j'ai utilisé dans mon exemple ci-dessus pour créer la nouvelle colonne et sa formule pour la détermination du mode.J'espère que cela dissipera toute confusion quant à la manière de faire fonctionner ce que j'ai fourni pour vous.
Noms par défaut ici ( 1 ) ;
dt = Ouvrir ( "$SAMPLE_DATA\Big Class.jmp" ) ;
dt << Nouvelle colonne (
"Mode" ,
formule (
Si ( Rangée () == 1 ,
Résumer ( compter = Compter ( : âge ) , par groupe = par ( : âge ) )
) ;
Numéro ( par groupe [ Lieu ( Comme liste ( compter ) , Max. ( compter ) )] ) ;
)
)
;
Re : Cycle détecté pour la colonne de donnéesSalut Jim
J'ai essayé cette méthode, mais cela n'a pas fonctionné.
Mais j'ai découvert le Mode ^_^
-JL
Re : Cycle détecté pour la colonne de donnéesLorsqu'un tableau contient plusieurs colonnes de formules, JMP examine chaque colonne pour voir quelles autres colonnes doivent être évaluées à l'avance.La boîte de dialogue signifie que JMP n'a pas pu déterminer quelle colonne devait être évaluée en premier.
J'espère txnelson la réponse aide.Sinon, vous pouvez peut-être supprimer la dépendance de l’une des colonnes sur l’autre colonne.Si cela ne fonctionne pas, vous pouvez déplacer la logique dans une boucle JSL, quelque chose comme
Exemple 1
PourEachRow(
colonne1 =
colonne2 =
)
ou
Exemple 2
PourEachRow(
colonne1 =
)
PourEachRow(
colonne2 =
)
Le premier exemple suppose que column2 peut être évalué sans que les futures lignes de column1 soient déjà calculées.
Le deuxième exemple représente le classement effectué par JMP, déterminant quelle colonne doit être évaluée en premier.Toutes les lignes de la colonne 1 seront disponibles pour les calculs de la colonne 2.
Re : Cycle détecté pour la colonne de donnéesSi vous souhaitez utiliser une formule différente, voici une formule pour calculer le mode simple pour une colonne appelée :Age
If(Row() == 1, Summarize(count = Count(:age), bygroup = by(:age))); Num(pargroupe[Loc(Comme Liste(nombre), Max(nombre))])