For(x=1,x<=N Rows(dt),x++,
If(IsMissing(Column( dt, "Actual Finish Date_" )[x]),
Column( dt, "bouge pas" )[x] = Column( dt, "Operation Due Date_" )[x] - :Operation Start Date_ [x-1],
Column( dt, "bouge pas" )[x] = Column( dt, "Actual Finish Date_" )[x] - :Actual Execution Start Date_ [x]
);
);
안녕하세요, 제 문제는 for의 첫 번째 줄에 x-1 열에 대해 원하지만 이 구문이 작동하지 않는다는 것입니다. 감사
데이터 테이블의 행을 반복하는 경우(일반적으로 이를 피하고 수식을 사용하거나 각 값을 설정하려고 합니다) For() 대신 For Each Row()를 사용하는 것이 좋습니다. 예제 데이터가 없으면 JMP( ':Operation Start Date_[ /*###*/x - 1]', :Operation Start Date_[/*###*/x - 1] 액세스 또는 평가의 행 2에 잘못된 행 번호가 있습니다. )
x 값을 수동으로 설정하고 결과를 확인하고 디버그 인쇄를 추가하고 로그를 살펴보십시오.
다음은 bouge pas columns 값을 설정하는 방법에 대한 몇 가지 선택적 아이디어가 포함된 예제 스크립트입니다.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
New Column("Actual Finish Date_", Numeric, "Continuous", Format("Best", 12), Set Values([1, 4, 6])),
New Column("Actual Execution Start Date_", Numeric, "Continuous", Format("Best", 12), Set Values([0, 2, 3])),
New Column("Operation Start Date_", Numeric, "Continuous", Format("Best", 12), Set Values([10, 21, 32])),
New Column("Operation Due Date_", Numeric, "Continuous", Format("Best", 12), Set Values([11, 22, 33])),
New Column("bouge pas", Numeric, "Continuous")
);
For(x = 1, x <= N Rows(dt), x++,
If(Is Missing(Column(dt, "Actual Finish Date_")[x]),
Column(dt, "bouge pas")[x] = Column(dt, "Operation Due Date_")[x] - :Operation Start Date_[x - 1],
Column(dt, "bouge pas")[x] = Column(dt, "Actual Finish Date_")[x] - :Actual Execution Start Date_[x]
);
);
/* better option in my opinion
For Each Row(dt,
If(Is Missing(:"Actual Finish Date_"n),
:"bouge pas"n = :"Operation Due Date_"n - :Operation Start Date_[Row() - 1],
"bouge pas"n = :"Actual Finish Date_"n - :Actual Execution Start Date_
);
);
*/
/* usually best option
Column(dt, "bouge pas") << Set Each Value(
If(Is Missing(:"Actual Finish Date_"n),
:"Operation Due Date_"n - :Operation Start Date_[Row() - 1],
:"Actual Finish Date_"n - :Actual Execution Start Date_
);
);
*/