저는 일련의 반도체 로트에 대한 도구 이력을 설명하는 데이터 테이블을 가지고 있습니다. 어떤 경우에는 로트가 분할되어 동일한 처리 단계에 대해 다른 도구로 실행될 수 있습니다. 그런 경우, 1개 이상의 도구가 관련되었음을 나타내기 위해 각 도구가 연결된 열을 만들고 싶습니다. 많은 도움으로 1개 이상의 도구가 사용된 로트, 단계 및 하위 단계를 식별할 수 있는 지점에 도달했습니다. 데이터를 전치하여 열에 지정된 도구로 이동할 수 있지만 여전히 어색합니다. 어떻게든 연결하여 고유한 도구가 나열되도록 할 수 있습니까? 또한 분할을 살펴봤지만 모든 옵션이 반영되지 않았습니다.

다음은 원하는 결과 열을 만드는 데 사용할 수 있는 공식입니다.
As Constant( dt = Current Data Table() );
Concat Items( Associative Array( dt[Row(), 0] ) << get keys, "/" );
tx넬슨
이것은 큰 진전입니다. 방정식에서 처음 4개의 열을 쉽게 피할 수 있는 방법이 있습니까? 5열부터는 관련 데이터가 있습니다.
이를 수행하는 한 가지 방법은 다음과 같습니다.
As Constant(
dt = Current Data Table();
start = 5;
stop = N Cols( dt );
);
Concat Items( Associative Array( dt[Row(), Index( start, stop )] ) << get keys, "/" );
강력한 제안이므로 시간을 내어 방문하십시오.
도움말=>JMP 온라인 도움말
JSL과 스크립팅에 익숙해지려면 스크립팅 가이드 섹션을 읽어보세요.
저처럼 보기 흉하지만 작동합니다. txnelson의 스크립트에서 생성된 열에는 텍스트 앞에 원치 않는 슬래시가 있을 수 있습니다. 열의 수식을 없애고 정규 표현식을 사용하여 앞의 /를 제거하는 다른 열로 바꿉니다.
New Column("Tools2", Character, "Nominal", Formula(As Constant(
dt = Current Data Table();
start = 6;
stop = N Cols( dt );
);
Concat Items( Associative Array( dt[Row(), Index( start, stop )] ) << get keys, "/" );));
Wait(1);
Data Table( "Transpose of Tool_History" ):Tools2 << Delete Formula;
colList = Data Table( "Transpose of Tool_History" ) << Get Column Names( String );
For( i = 1, i <= N Cols( Data Table( "Transpose of Tool_History" ) ), i++,
If( Contains( colList[i], "Row" ), /* select only columns with Row
in the name */
Column( colList[i] ) << Set Selected( 1 );
)
);
Data Table( "Transpose of Tool_History" ) << Delete Columns();
New Column("Tools", Character, "Nominal", Formula(Regex(:Tools2, "\w.*")));
Wait(1);
Data Table( "Transpose of Tool_History" ):Tools << Delete Formula;결과를 얻으려면 많은 노력을 해야 합니다. 다음은 내가 만든 마지막 공식에 대한 간단한 수정 사항으로, 앞의 "/"를 제거합니다.
New Column( "Result",
Character,
"Nominal",
set each value(
As Constant(
dt = Current Data Table();
start = 5;
stop = N Cols( dt );
);
Substr(
Char( Concat Items( Associative Array( dt[Row(), Index( start, stop )] ) << get keys, "/" ) ),
2
);
)
);
샘플 데이터 테이블이 포함된 전체 예는 다음과 같습니다.
Names Default To Here( 1 );
// Create a sample data table
New Table( "Sample",
Add Rows( 3 ),
Set Header Height( 46 ),
New Column( "lot",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1324567, 1324567, 1324567] )
),
New Column( "step", Character, "Nominal", Set Values( {"Material", "Material", "Material"} ) ),
New Column( "substep", Character, "Nominal", Set Values( {"Deposit", "CD Measure", "Measure"} ) ),
New Column( "Label", Character, "Nominal", Set Values( {"machine", "machine", "machine"} ) ),
New Column( "Row 1", Character, "Nominal", Set Values( {"Machine A", "Caliper 1", "Tapemeasure 1"} ) ),
New Column( "Row 2", Character, "Nominal", Set Values( {"", "Caliper 2", ""} ) ),
New Column( "Row 2 2", Character, "Nominal", Set Values( {"Machine A", "", ""} ) ),
New Column( "Row 4", Character, "Nominal", Set Values( {"", "", "Tapemeasure 3"} ) ),
New Column( "Row 5", Character, "Nominal", Set Values( {"Machine B", "", ""} ) ),
New Column( "Row 6", Character, "Nominal", Set Values( {"", "", ""} ) ),
New Column( "Row 7", Character, "Nominal", Set Values( {"", "", ""} ) )
);
// Add the concatenated column, with the "/" removed from begining
New Column( "Result",
Character,
"Nominal",
set each value(
As Constant(
dt = Current Data Table();
start = 5;
stop = N Cols( dt );
);
Substr(
Char( Concat Items( Associative Array( dt[Row(), Index( start, stop )] ) << get keys, "/" ) ),
2
);
)
);
나는 그것이 못생겼다는 것을 알고 있었습니다! 실제로 훨씬 더 좋았습니다.
항상 감사히 여기겠습니다.