다양한 수식을 사용하여 데이터를 조작하고 결과를 하나의 마지막 열에 저장해야합니다. 수식을 성공적으로 적용하고 새로운 열에 데이터를 저장할 수 있지만 같은 열에는 저장할 수 없습니다.
예를 들어,
이 테이블에서,

나는 USL 값이있는 셀에 대해 공식 (abs (나누기 (효과, 빼기 (USL, 평균))) * 100)을 사용하고 있습니다.
LSL 값이 존재하는 공식 (abs (Divide (Effect, Subtract (Mean, LSL))) * 100)). 그러나 열 이름, LSL 및 USL이 비어있는 셀의 경우 수식을 사용하려고합니다. 수식 (나누기 (abs (효과)), 평균);
내가 현재 작업하고있는 스크립트는 다음과 같습니다.
dtq = Open("path\formula.jmp");
a = dtq << New Column("Final", Formula(abs(Divide(Effect,Subtract( USL,Mean)))*100));
//);
//:Final << Formula(abs(Divide(Effect,Subtract( USL,Mean)))*100);
b = dtq << New Column("Final1",Formula(abs(Divide(Effect,Subtract( Mean,LSL)))*100));
If( Is Empty( dtq << ColumnName ),
:Final << Formula(Divide(abs(Effect)), Mean);
);
show(b);
이제 얻는 결과는 다음과 같습니다.

반면 Final1의 값은 같은 열에 있어야합니다. 또한,
스크립트의이 부분 :
If( Is Empty( dtq << ColumnName ),
:Final << Formula(Divide(abs(Effect)), Mean);
);
어떤 오류도 보이지 않지만 잘 작동하지 않습니다. 어떤 도움을 주셔서 감사합니다.
@Dan_Obermiller 해결책을 가져 주셔서 감사합니다. 필자는 동일한 수식을 실행하기를 원하는 테이블이 너무 많아서 스크립트가 그렇게한다면 더 좋을 것입니다. 그래도 빠른 해결책을 가져 주셔서 감사합니다 ..
행에 LSL과 : USL이 둘 다 존재하지 않는다고 가정하면 설명 된 모든 경우를 처리합니다.
If(
!Is Missing( :LSL ), Abs( :Effect / (:Mean - :LSL) ) * 100,
!Is Missing( :USL ), Abs( :Effect / (:USL - :Mean) ) * 100,
Is Missing( :ColumnName ), Abs( :Effect ) / :Mean
)
이것은 나에게 지나치게 복잡하게 보입니다. 모든 계산은 단일 수식 열에 입력 할 수 있습니다.
만약(
Missing (: LSL) & Is Missing (: USL), Abs (: 효과 / : 평균),
Missing (: LSL), Abs (: Effect / (: USL - : Mean)) * 100,
Is Missing (: USL), Abs (: Effect / (: Mean Mean - : LSL)) * 100
)
스크립팅 할 필요가 없습니다. 대화식으로 다음과 같이 보입니다.

다음 결과를 제공합니다.
