在不使用 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]
關於如何在一個易於解釋的公式中做到這一點的任何想法?
在這一點上,我將不得不問:我們在這裡尋找什麼? 單一公式哪個也不言自明?
我提供的公式是一個單一的公式(如果在某個特定點之後沒有事件,則需要進行小的更改來處理案例)但幾乎不言自明,但可以通過使用具有良好名稱的支持變量來更接近一個公式。