안녕하세요 여러분 -
아래에서 원하는 다음 열을 반환하는 열 수식을 찾고 있습니다.이 게시물의 단순성을 위해 각 그룹에는 3개의 행이 있지만 현재 가지고 있는 데이터 세트에는 행 수가 다양한 그룹이 있습니다.
도움을 주셔서 감사합니다!
| 그룹 | 시간 | 점수 | 처음 실패(원하는 열) |
| ㅏ | 1 | 통과하다 | 8 |
| ㅏ | 삼 | 통과하다 | 8 |
| ㅏ | 8 | 실패하다 | 8 |
| 비 | 1 | 통과하다 | 통과하다 |
| 비 | 2 | 통과하다 | 통과하다 |
| 비 | 6 | 통과하다 | 통과하다 |
| 씨 | 1 | 통과하다 | 삼 |
| 씨 | 삼 | 실패하다 | 삼 |
| 씨 | 7 | 실패하다 | 삼 |
@user8421 ,
이것은 데이터 테이블 수식을 사용하는 재미있는 대안일 뿐입니다. 그룹 크기가 다르거나 테이블이 정렬되지 않은 경우 작동합니다.
논리는 각 그룹에서 실패에 대한 최소 행 번호를 찾는 것입니다. 열 최소값(... , 기준) 열쇠입니다. 기준 옵션을 사용하는 열 통계 함수는 매우 유용하지만 종종 간과되는 함수입니다.

"Row First Failed" 열의 수식

"Time First Failed" 열의 수식입니다. 구문이 이상하게 보이면 오른쪽 수식은 시간이고 다음을 선택합니다. 아래첨자 ~로부터 열 함수 및 드래그 열 4, "Row First Failed"

다음은 예제 데이터 테이블에서 작동하는 수식입니다.그 이상으로 테스트되지 않았으므로 약간의 조정이 필요할 수 있습니다.
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 9 ),
New Column( "Group", Character, "Nominal", Set Values( {"A", "A", "A", "B", "B", "B", "C", "C", "C"} ) ),
New Column( "Time", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 3, 8, 1, 2, 6, 1, 3, 7] ) ),
New Column( "Score",
Character,
"Nominal",
Set Values( {"Pass", "Fail", "Pass", "Pass", "Pass", "Pass", "Pass", "Fail", "Fail"} )
)
);
dt << New Column( "First Time Failed",
character,
formula(
If( Row() == 1,
dt = Current Data Table();
check = :Score;
If( :Group == :Group[2],
Failed = Char( Col Max( :Time, :Group ), Failed = :Score )
);
,
If( :Group == Lag( :Group ),
If( :Score == "Fail",
check = "Fail"
);
Failed = Char( Col Max( :Time, :Group ) );
,
If( check == "Pass",
lagGroup = Lag( :Group );
:First Time Failed[dt << get rows where( :Group == lagGroup )] = "Pass";
Failed = Char( Col Max( :Time, :Group ) );
);
check = :Score;
)
);
failed;
)
);