我正在尝试编写一个列公式,该公式将计算直到当前行的所有(非空)行的乘积。
我附上了一个示例数据表(和屏幕截图)。
我试图让“产品”列成为“值”列中所有非空行的乘积。我在右侧的“所需结果”和“所需结果说明”中显示了手动计算的结果和数学运算。

我试图在示例数据表中强调几个数据集问题。
1. 每个“组”的行数因组而异。
2.“团体”永远团结一致、井然有序。所有第 1 组都将在一起。 Group1 始终位于 Group 2 之前。
3. 每组“值”列只有一个非空行。它始终是该组的第一行。
我认为这可能需要“循环”或“for”类型的公式,但构建这些公式的经验有限。
即使您没有解决方案,我也感谢您认为任何可能帮助我找到解决方案的想法或指南链接或其他讨论。
之前的尝试:
我认为 txnelson 对这个问题的回答( https://community.jmp.com/t5/Discussions/How-to-multiply-all-elements-in-a-list/td-p/667633 )可能有效,但还没有没有得到我正在寻找的结果。
感谢您的时间和帮助!
JMP 版本:17.2.0,Windows 10
一个选项利用这样的知识:值总是从每个组的第一行中找到
If(Row() == 1,
val = 1;
);
If(Row() == Col Min(Row(), :Group),
val = val * :Value;
,
.;
);

编辑:
这是其他检查:值是否丢失
If(Row() == 1,
val = 1;
);
If(!IsMissing(:Value),
val = val * :Value;
,
.
);
您还应该能够将第一个 If 替换为As Constant
As Constant(val = 1);
If(!IsMissing(:Value),
val = val * :Value;
,
.
);