Indice che enumera per gruppoCiao,
Sto cercando di impostare un indice che enumera per un gruppo o un insieme di righe. Ho allegato una foto per cercare di spiegare meglio cosa sto cercando di ottenere.
Come puoi vedere nella foto, sto cercando di ottenere l'indice in base al gruppo di passaggi. La difficoltà qui o ciò che sto trovando difficile è che il numero di istanze menzionate per ciascun gruppo può variare e ci sono lacune in cui nessuna è elencata.

Questo è quello che ho usato per farmi arrivare a ottenere i risultati mostrati in: Achieved_Index ma quello che sto davvero cercando sono i risultati come in: 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
)
)
);L'obiettivo finale è far funzionare correttamente la colonna dell'indice. Che usarlo per impostare la colonna flag per identificare il segno intermedio o l'ultimo passaggio per ciascun gruppo se ci sono solo due istanze. Non ci ho pensato molto su questo oltre a ottenere il conteggio di ogni passaggio per ciascun indice, dividendo per 2 che usare questo valore per la mia funzione Lag (). Eventuali suggerimenti su questo sarebbero apprezzati anche grazie!
Ri: indice che enumera per gruppoLa formula seguente ti fornirà le risposte che desideri
If( Row() == 1, step = 0 );
If( :stepName != "" & Lag( :stepName ) == "" | Row() == 1,
step
++);
If( :stepName != "", step, 0 );
Ri: indice che enumera per gruppotxnelson, grazie per l'aiuto. Questo mi ha aiutato ad arrivare dove avevo bisogno.
Questo è il codice che ha eseguito ciò che stavo cercando:
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 );
);
Ho dovuto apportare un paio di modifiche / aggiunte perché anche se lo sto chiamando un indice, volevo iniziare da 1.
Ho anche dovuto aggiungere un'istruzione If aggiuntiva perché se la prima riga avesse: StepName == "" eliminerebbe il conteggio.