按組枚舉的索引你好,
我正在嘗試設置一個按一組或一組行枚舉的索引。 我附上了一張照片,試圖更好地解釋我想要實現的目標。
正如您在圖片中看到的,我試圖讓索引基於步驟組。 這裡的困難或我發現的困難是每個組提到的每個步驟的實例數量可能會有所不同,並且在沒有列出的地方存在差距。

就獲得 :Achieved_Index 中顯示的結果而言,這就是我用來獲取結果的方法,但我真正想要的是 :Expected_Index 中的結果
dt = Data Table("sample");
dt << New Column( "Achieved_Index", Numeric( ) );
x = 1;
For Each Row( If( :StepName == "",
:Achieved_Index = 0,
If( Lag(:StepName, -1) != "" | :StepName == "STEP3",
:Achieved_Index = x,
x = x + 1
)
)
);最終目標是讓該索引列正常工作。 如果只有兩個實例,則使用它來設置標誌列以標識每個組的中途標記或最後一步。 除了可能獲得每個索引的每個步驟的計數,除以 2 而不是將此值用於我的 Lag() 函數之外,我並沒有真正考慮太多。 對此的任何建議也將不勝感激謝謝!
Re: 按組枚舉的索引txnelson,感謝您的幫助。 這幫助我到達了我需要的地方。
這是執行我正在尋找的代碼:
For Each Row(
If( Row() == 1, step = 0);
If(Row() == 1 & :StepName != "", step = 1);
If( :StepName != "" & Lag( :StepName ) == "",
:Achieved_index = step++);
If( :StepName != "", :Achieved_index = step, :Achieved_index = 0 );
);
我不得不進行一些編輯/添加,因為即使我將其稱為索引,我也想從 1 開始。
我還必須添加一個額外的 If 語句,因為如果第一行有 :StepName == "" 它會拋出計數。
Re: 按組枚舉的索引下面的公式會給你想要的答案
If( Row() == 1, step = 0 );
If( :stepName != "" & Lag( :stepName ) == "" | Row() == 1,
step
++);
If( :stepName != "", step, 0 );