다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.안녕 모두,
다른 두 열( "필수 열1" 및 "필수 열2")의 패턴을 기반으로 두 개의 새 열을 생성하려고 합니다. 첨부된 이미지를 참고해주세요 -

어떤 도움/제안?
감사 해요.
스크립팅Re: 다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.다음은 필수 열 2를 참조하는 열에 대한 수식입니다.코드를 연구하면 시작 및 끝 값을 결정할 때 확인해야 하는 논리 규칙을 코드에서 적용하는 것이 전부임을 알 수 있습니다.또한 필수 열 1 열에 대한 값 설정이 포함되어 있습니다. 이 수식을 실행하려면 필수 열 1 및 필수 열 2를 생성하기만 하면 됩니다. 필수 열 2를 문자 열로 설정하십시오.그런 다음 필수 열 2에 대한 수식을 열고 아래 수식을 열에 복사합니다.

RCValue = "";
:Required Column 1[Row()] = .;
If( :Sensor != "Primary",
other = "Yes"
);
If( Row() == 1 | :ID != Lag( :ID ) | :"Sub-set"n != Lag( :"Sub-set"n ),
counter = 0;
withinStart = "No";
other = "Yes";
);
If(
:Sensor == "Primary" & withinStart == "Yes",
RCValue = "End";
withinStart = "No";
other = "No";,
:Sensor == "Primary" & Lag( :Sensor, -1 ) != "Primary" & withinStart == "No" & other == "Yes" & Row() !=
N Rows( Current Data Table() ),
withinStart = "Yes";
counter = counter + 1;
RCValue = "Start";
);
If( withinStart == "Yes" | RCValue == "End",
:Required Column 1[Row()] = counter
);
RCValue;
Re: 다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.안녕 @txnelson ,
몇 가지 잘못된 항목으로 거의 작동했습니다. 발생 열에 추가 조건을 추가해야 한다고 생각합니다. 즉, :Occurrence는 :Required Column 2 == "Start"로 변경되어야 합니다(그리고 옵션일 수 있음 - :Required Column 2 == "End"일 때 동일해야 함).
Dif(:Occurrence) !=0 then only :Required Column 2 == "Start"와 같은 것
내 샘플 데이터(95개 행)의 경우 수식은 괜찮았지만 300,000개 이상의 행이 있는 실제 데이터는 아래와 같이 많은 잘못된 항목을 제공합니다. ) 이것은 잘못된 항목의 스크린샷일 뿐입니다.

설마!!수식/코드를 수정할 수 있으며 발생 요구 사항을 추가할 수 있습니다. 당신의 공식 위에.
귀하의 지원에 다시 한 번 감사드립니다.
Re: 다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.안녕 @txnelson 그리고 다,
내 요구 사항에 완벽하게 기반하여 코드를 수정할 수 있었습니다. 그러나 2단계 문제 해결에서는 다음과 같은 것이 필요합니다.
Mark :Sensor = :Occurrence의 연속적인 변화를 중심으로 "Primary"(첫 번째).주어진 스크린샷에서 -
사이에 필요한 값 --- 마지막 "기본" ~에 발생 = 2 그리고 첫 번째 "기본" ~에 발생 = 3 [연속 발생 변화]
첫 번째 초등회를 찾는 것은 그리 어렵지 않으며 마지막 초등회를 찾는 방법을 모르십니까? Occurrence = 2에 대한 하위 집합 데이터를 어떻게든 반전(내림차순)하려고 생각하고 값을 찾은 다음 다시 되돌립니다. 공식을 넣을 수 없습니다!! 다른 방법이 있습니까?
도움이 되셨나요?
감사 해요.

Re: 다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.가장 최근 응답에서 제공한 결과를 얻기 위해 이전에 제공한 코드를 수정했습니다. 샘플 데이터 테이블에 표시되는 결과를 얻기 위해 사용 중인 JSL을 제공하십시오.
Re: 다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.안녕 @txnelson , 응답해 주셔서 감사합니다.
올바른(업데이트된 요구 사항) 시작점을 가져올 수 없습니다. 데이터 테이블("샘플 데이터 업데이트됨") 및 이미지에서 수정된 데이터 열을 수동으로 입력했습니다.
공식. 나는 "필수 열 1 Old"와 "필수 열 2 Old"를 얻었습니다.
RCValue = "";
:Required Column 1[Row()] = .;
If( :Occurrence != Lag( Occurrence, -1 ),
other = "Yes"
);
If( Row() == 1 | :ID != Lag( :ID ) | :"Sub-set"n != Lag( :"Sub-set"n ),
counter = 0;
withinStart = "No";
other = "Yes";
);
If(
:Sensor == "Primary" & :Occurrence == Lag( :Occurrence, -1 ) & Dif( :Occurrence ) == 0 &
withinStart == "Yes",
RCValue = "End";
withinStart = "No";
other = "No";,
:Occurrence != Lag( Occurrence, -1 ) & Lag( :Sensor, -1 ) != "Primary" & withinStart == "No"
& other == "Yes" & Row() != N Rows( Current Data Table() ),
withinStart = "Yes";
counter = counter + 1;
RCValue = "Start";
);
If( withinStart == "Yes" | RCValue == "End",
:Required Column 1[Row()] = counter
);
RCValue;

감사합니다.
Re: 다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.나는 혼란스러워.내가 볼 수 있듯이 내가 작성한 스크립트는 데이터 테이블의 44행 이후에 규칙을 변경했고 이제 End가 Primary의 다음 값 이전 행에 있기를 원하는 것을 제외하고는 작동하는 것 같습니다.당신이 원하는 것은 무엇입니까?

Re: 다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.안녕하세요 짐,
혼란을 드려 죄송합니다.
귀하의 원래 공식(나는 그것을 엉망으로 만들지 않았다고 생각합니다)은 대부분의 경우에 효과가 있었지만 전체 데이터 세트에서 몇 가지 잘못된 점을 포착하고 몇 가지를 놓쳤습니다. 첨부된 데이터 하위 집합(하나의 "ID" 및 하나의 "하위 집합" 값에 대해서만)에는 잘못된 점이 거의 없는 공식을 기반으로 하는 열이 있습니다.
행: 647-649 잘못된 항목(빨간색)
행: 868-937 캡처되지 않음(빨간색)
행: 1307-1311 잘못된 항목(빨간색)
그리고 이것은 내가 :Occurrence에 조건을 붙였을 때 수정되었습니다.
지금 나는 찾고있다 -
1. 발생한 마지막 기본 센서 = n(n = 2), "시작"으로 표시
2. 첫 번째 Primary Sensor in Occurrence = n+1(= 3), n = 3에 대한 Primary Sensor가 없으면 Occurrence = n+2 == 4의 값을 중지/표시해야 합니다. "끝"으로 표시
3. 그리고 마지막으로 새 열에 "시작"과 "끝" 사이의 숫자를 채웁니다.
(아마도) 생각하는 다른 방법 --
단일 발생에서 n(n = 2) 첫 번째 기본 센서를 END로 표시하고 마지막 기본 센서에서 시작으로 표시한 다음 새 열에서 시작과 끝 사이의 값을 채웁니다.
이것이 도움이 되고 상황이 명확해지기를 바랍니다.
감사 해요,
내가 찾을 수 있다면 이것이 될 수 있다고 생각합니다.
Re: 다른 열의 일부 패턴을 기반으로 두 개의 열을 생성하려고 합니다.문제는 JSL 변수 "other"에 적용되는 논리에 있는 것 같습니다.오늘 이 문제에 대해 작업할 시간이 없지만 내일 오후에 조사를 할 수 있을 것입니다.