一連の半導体ロットのツール履歴を説明するデータ テーブルがあります。場合によっては、ロットを分割して、同じ処理ステップで異なるツールで実行することができます。そのような場合、各ツールを連結した列を作成し、1 つ以上のツールが使用されたことを示します。多くの助けを借りて、1 つ以上のツールが使用されたロット、ステップ、サブステップを識別できるようになりました。データを転置して列に指定されているツールを取得することはできますが、それでもまだ扱いにくいです。何らかの方法でそれを連結して、一意のツールをリストすることはできますか。分割も確認しましたが、すべてのオプションが反映されていません。

希望する結果列を作成するために使用できる数式は次のとおりです。
As Constant( dt = Current Data Table() );
Concat Items( Associative Array( dt[Row(), 0] ) << get keys, "/" );
ネルソン
これは大きな前進です。方程式から最初の 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
);
)
);