如何根據公式或 For-Loop 中的分組列調用聚合值(平均值/最大值等)大家好,
我試圖找出警報觸發的次數。 我基於簡單的邏輯創建了一個“發生次數”列——如果數據在行()> 行()+1,觸發器重新設置。 但是我收到了很多誤報,如圖所示。 我要實現的新登錄 -
如果 (
(Row() - Row()+1) >= Abs(Max(Data))/10, 重置觸發器,否則按原樣生活
)
類似的東西。
我可以用一點日誌的方式來做,比如製作匯總表,然後從匯總表中添加列,然後將每個值與新列進行比較。 它工作正常,但使我的腳本變慢。
有沒有更好的方法在公式或 For 循環中實現它?
任何幫助。
謝謝。

腳本編寫回复:如何根據公式或 For-Loop 中的分組列調用聚合值(平均值/最大值等)您可以使用 Col Max() 函數獲取組內的最大值,並使用 Lag() 來比較列中的行。
您能否提供具有“正確”結果的數據表,以便更容易理解警報背後的邏輯? 或者只是想檢查當前數據值是否大於組(ID 和子集)中的先前值?
回复:如何根據公式或 For-Loop 中的分組列調用聚合值(平均值/最大值等)您可以直接使用公式計算 10% Max:
Col Max(:Data, :ID, :"Sub-set"n)*0.1
我仍然不確定應該如何計算出現次數,因為它似乎永遠不會重置,但可能會後移 1 個值。 要檢查“當前行”之後的值數據列值,您可以使用 Lag(:Data, - 1)

您擁有的規則看起來像這樣作為一個公式:
If(:Data - Lag(:Data, -1) >= Abs(Col Max(:Data, :ID, :"Sub-set"n)) / 10,
1,
0
)