在不使用 JSL 的情况下,有没有办法计算一列,告诉您在事件发生之前还剩多少行?
以下公式有效,但需要用户在“应用”中单击 n 次

您可以使用更复杂的公式。 这样的事情可以工作(可能无法正确处理所有特殊情况):
If(Row() == 1,
m_events = Loc(:Event << get as matrix, 1);
);
smallerRows = Loc(Row() <= m_events);
If(N Items(smallerRows) == 0,
0,
rowNextEvent = m_events[smallerRows[1]];
If(rowNextEvent,
rowNextEvent - Row();
);
);
</CODE></P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-420085" slang="en-US">回复:事件前的行数</LINGO-SUB><LINGO-BODY id="lingo-body-420085" slang="en-US"><P>也许我们可以使用的事实是,如果行顺序颠倒,解决方案是在 JMP 中自行填充的?</P><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="event reversed.png" style="width: 999px;"><IMG src="https://us.v-cdn.net/6038925/uploads/images/35991iD2492C320390E2C4/event%20reversed.png" role="button" title="event reversed.png" alt="事件反转.png" /></SPAN></P><P> </P><P>例如,这将颠倒事件的顺序。</P><P>事件反转:</P><PRE><CODE class=" language-jsl">:Event[(N Rows() - Row()) + 1]
现在随着计算从上到下自动填充值
反转事件后的 n 行:
If( :Event inverted == 1, 0,
Lag( :n rows after inverted event, 1 ) + 1
)
最后,我们反转了该列。
:n rows after reversed event[(N Rows() - Row()) + 1]
关于如何在一个易于解释的公式中做到这一点的任何想法?
在这一点上,我将不得不问:我们在这里寻找什么? 单一公式哪个也不言自明?
我提供的公式是一个单一的公式(如果在某个特定点之后没有事件,则需要进行小的更改来处理案例)但几乎不言自明,但可以通过使用具有良好名称的支持变量来更接近一个公式。