J'essaie d'écrire une formule de colonne qui calculera le produit de toutes les lignes (non vides) jusqu'à la ligne actuelle.
J'ai joint un exemple de tableau de données (et capture d'écran).
J'essaie de faire en sorte que la colonne "Produit" soit le produit de toutes les lignes non vides de la colonne "Valeur". J'affiche le résultat calculé manuellement et les calculs dans le « Résultat souhaité » et « Explication du résultat souhaité » à droite.

Quelques problèmes liés aux ensembles de données que j'ai essayé de mettre en évidence dans l'exemple de tableau de données.
1. Le nombre de lignes par « Groupe » varie d'un groupe à l'autre.
2. Le « Groupe » sera toujours ensemble et en ordre. Tous les groupes 1 seront ensemble. Le groupe 1 viendra toujours avant le groupe 2.
3. La colonne Valeur n'aura qu'une seule ligne non vide par groupe. Ce sera toujours la première ligne de ce groupe.
Je pense que cela pourrait nécessiter une formule de type "boucle" ou "pour", mais j'ai une expérience limitée dans leur construction.
Même si vous n'avez pas de solution, j'apprécie toute idée ou lien vers des guides ou d'autres discussions qui, selon vous, pourraient me conduire à une solution.
Tentatives précédentes :
Je pensais que la réponse de txnelson à cette question ( https://community.jmp.com/t5/Discussions/How-to-multiply-all-elements-in-a-list/td-p/667633 ) pourrait fonctionner mais je n'ai pas réussi. Je n'ai pas réussi à donner le résultat que je recherche.
Merci pour votre temps et votre aide!
Version JMP : 17.2.0, Windows 10
Une option utilisant la connaissance que la valeur se trouve toujours à partir de la première ligne pour chaque groupe
If(Row() == 1,
val = 1;
);
If(Row() == Col Min(Row(), :Group),
val = val * :Value;
,
.;
);

Modifier:
Et voici une autre vérification si : La valeur est manquante ou non
If(Row() == 1,
val = 1;
);
If(!IsMissing(:Value),
val = val * :Value;
,
.
);
Vous devriez également pouvoir remplacer d'abord If par As Constant
As Constant(val = 1);
If(!IsMissing(:Value),
val = val * :Value;
,
.
);
Merci Jarmo, cela a parfaitement fonctionné !