Índice que enumera por grupoHola,
Estoy tratando de configurar un índice que enumera por grupo o conjunto de filas. Adjunto una imagen para tratar de explicar mejor lo que estoy tratando de lograr.
Como puede ver en la imagen, intento que el índice se base en el grupo de pasos. La dificultad aquí o lo que me resulta difícil es que el número de instancias que se menciona en cada paso para cada grupo puede variar y hay lagunas donde no se enumera ninguna.

Esto es lo que he usado para obtener los resultados que se muestran en: Achieved_Index pero lo que realmente estoy buscando son resultados como en: 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
)
)
);El objetivo final es lograr que la columna de índice funcione correctamente. En lugar de usarlo para configurar la columna de marca para identificar la marca de mitad de camino o el último paso para cada grupo si solo hay dos instancias. Realmente no he pensado mucho en este, además de posiblemente obtener el recuento de cada paso para cada índice, dividir por 2 que usar este valor para mi función Lag (). Cualquier sugerencia sobre esto también sería apreciada gracias!
Re: Índice que enumera por grupoLa siguiente fórmula le dará las respuestas que desea.
If( Row() == 1, step = 0 );
If( :stepName != "" & Lag( :stepName ) == "" | Row() == 1,
step
++);
If( :stepName != "", step, 0 );
Re: Índice que enumera por grupotxnelson, gracias por la ayuda. Esto me ayudó a llegar a donde lo necesitaba.
Este es el código que realizó lo que estaba buscando:
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 );
);
Tuve que hacer un par de ediciones / adiciones porque, aunque lo llamo un índice, quería comenzar en 1.
También tuve que agregar una instrucción If adicional porque si la primera fila tuviera: StepName == "" arrojaría la cuenta.