Ich habe eine Datentabelle, die den Werkzeugverlauf für eine Reihe von Halbleiterchargen beschreibt. In einigen Fällen können die Chargen aufgeteilt und für denselben Verarbeitungsschritt auf verschiedene Werkzeuge verteilt werden. In einem solchen Fall möchte ich eine Spalte mit den einzelnen Werkzeugen erstellen, um anzuzeigen, dass > 1 Werkzeug beteiligt war. Mit viel Hilfe bin ich an den Punkt gekommen, an dem ich die Chargen, Schritte und Unterschritte identifizieren kann, bei denen > 1 Werkzeug verwendet wurde. Ich kann die Daten transponieren, um zu den in den Spalten angegebenen Werkzeugen zu gelangen, aber es ist immer noch umständlich. Kann ich das irgendwie verketten, um die eindeutigen Werkzeuge aufgelistet zu bekommen? Ich habe mir auch „Aufteilen“ angesehen, aber nicht alle Optionen werden angezeigt.

Hier ist eine Formel, mit der Sie die Spalte „Gewünschtes Ergebnis“ erstellen können.
As Constant( dt = Current Data Table() );
Concat Items( Associative Array( dt[Row(), 0] ) << get keys, "/" );
Abonnieren
Das ist ein gewaltiger Fortschritt. Gibt es eine einfache Möglichkeit, die ersten 4 Spalten aus der Gleichung zu streichen? Die relevanten Daten finden sich ab Spalte 5.
So kann man das machen
As Constant(
dt = Current Data Table();
start = 5;
stop = N Cols( dt );
);
Concat Items( Associative Array( dt[Row(), Index( start, stop )] ) << get keys, "/" );
Als dringende Empfehlung nehmen Sie sich bitte die Zeit, um zu gehen
Hilfe=>JMP Online-Hilfe
und lesen Sie den Abschnitt zum Scripting-Handbuch, um sich mit JSL und Scripting vertraut zu machen
Ich finde, das ist hässlich, aber es funktioniert. Die von txnelsons Skript generierte Spalte kann unerwünschte Vorkommen des Schrägstrichs vor dem Text aufweisen. Ich lösche die Formel in der Spalte und ersetze sie durch eine andere Spalte, indem ich mithilfe von regulären Ausdrücken alle vorangestellten Schrägstriche (/) eliminiere.
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;Sie werden viel Arbeit aufwenden müssen, um Ihr Ergebnis zu erhalten. Hier ist eine einfache Änderung der letzten Formel, die ich erstellt habe, die das vorangestellte "/" entfernt.
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
);
)
);
Hier ist ein vollständiges Beispiel mit einer Beispieldatentabelle
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
);
)
);
Ich wusste, dass es hässlich war! Tatsächlich viel besser.
Wie immer geschätzt.