그룹별로 열거되는 인덱스여보세요,
그룹 또는 행 집합으로 열거하는 인덱스를 설정하려고합니다. 달성하려는 것을 더 잘 설명하기 위해 그림을 첨부했습니다.
그림에서 볼 수 있듯이 단계 그룹을 기반으로 색인을 만들려고합니다. 여기서 어렵거나 내가 어려워하는 것은 각 그룹에 대해 각 단계가 언급 된 인스턴스의 수가 다를 수 있으며 목록에없는 간격이 있다는 것입니다.

이것은 내가 : 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
)
)
);궁극적 인 목표는 해당 인덱스 열이 올바르게 작동하는 것입니다. 두 개의 인스턴스 만있는 경우이를 사용하여 플래그 열을 설정하여 각 그룹에 대한 중간 마크 또는 마지막 단계를 식별합니다. Lag () 함수 에이 값을 사용하는 것보다 2로 나누어 각 인덱스의 각 단계 수를 얻는 것 외에는 이것에 대해 많이 생각하지 않았습니다. 이것에 대한 제안도 감사하겠습니다!
Re : 그룹별로 열거되는 색인아래 공식은 당신에게 당신이 원하는 답변을 얻을 것입니다
If( Row() == 1, step = 0 );
If( :stepName != "" & Lag( :stepName ) == "" | Row() == 1,
step
++);
If( :stepName != "", step, 0 );
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에서 시작하기를 원했기 때문에 몇 가지 편집 / 추가 작업을 수행해야했습니다.
첫 번째 행에 : StepName == ""이 있으면 카운트를 버릴 수 있기 때문에 추가 If 문을 추가해야했습니다.