可調滯後差?不知道如何命名,但就這樣吧。 我有每批有幾個時間點的資料集。 對於每個批次,我想計算與時間點零的結果差異。 我曾經將每個結果與列最小值或最大值(如果合適)進行比較,效果很好,但是當結果有點跳躍時,最大值或最小值可能會發生在非零的另一個時間點。
我想要(所需的)差異如下。 有沒有一種簡單的方法可以在公式中做到這一點?

跳17.1
內容組織大規模客製化品質和工藝工程分享和交流成果視窗回覆:可調滯後差異?如果資料並不總是排序,只需添加一些可能的選項。
使用矩陣計算來取得索引
As Constant(
times = :Time << get as matrix;
batches = :Batch << get as matrix;
);
batch_rows = Loc(batches, :Batch);
batch_first_time_row = batch_rows[Loc Min(times[batch_rows])];
:Result - :Result[batch_first_time_row];
並使用 Col Sum 透過比較和乘積獲得最小值(如果 :Time 不是最小乘數為 0)。
:Result - Col Sum((:Time == Col Min(:Time, :Batch)) * :Result, :Batch);
回覆:可調滯後差異?(在我看來)了解其工作原理的最簡單方法是將該公式分為三個不同的公式
第一個(BatchMinRow)
Col Min(Row(), :Batch)
其次使用剛剛建立的BatchMinRow(BatchMinVal)
:Result[:BatchMinRow]
最後是第三個
:Result - :BatchMinVal
這使得更容易看出公式中不同部分的作用
回覆:可調滯後差異?感謝您非常快速且有用的回覆! 我會思考如何做,但我發現它有效!
回覆:可調滯後差異?如果結果是有序的,您可以使用以下內容:
:Result - :Result[Col Min(Row(), :Batch)]
Col Min(Row(), :Batch) 將會取得特定批次的第一行,然後我們可以使用 :Result[rownr] 來存取該行。

如果資料並不總是有序的,這並不是真正的問題,但它需要不同的公式