こんにちは、みんな、
いくつかの製品について、長さや幅など、いくつかのパラメータをチェックしています。各パラメータは、仕様制限を列プロパティとして持つ列です。各行が製品です。「InSpec」という列を自動的に作成して、割り当てられた仕様制限を持つすべてのパラメータ (列) について製品 (行) が仕様内か外かを示すようにするには、どうすればよいでしょうか。「InSpec」列の数式として IF ステートメントを記述する必要はありません。これは、チェックする仕様パラメータが大量にあるためです (仕様テーブルに保存されています)。すでに for ループを使用して仕様制限を列プロパティとして割り当てているので、すべての仕様を一度にチェックする方法があるのではないかと考えました。
ありがとう!
JSLはこれを実現できます。これらの投稿には、あなたができることについてのアイデアがいくつか記載されています。
列内の色付きセルの行番号を取得し、新しく作成された列にタグ (たとえば「1」) を割り当てるにはどうすればよいでしょうか。また、 Scripters Club Recordings: Tips and Tricks を参照してください。他にも方法があります。
下の行:
こちらに投票してください:folded_hands:仕様(価値)内です。
これは私が書いたスクリプトです。すべての列を循環し、列に仕様制限がある場合は新しい列を作成し、合格した行をすべて 1 に設定し、不合格の列をすべて 0 に設定します。また、不合格値のセルの色を赤にします。

Names Default To Here( 1 );
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNames = dt << get column names( string, numeric );
For Each( {col}, colNames,
specs = {};
specs = Try( Column( dt, col ) << get property( "spec limits" ), {} );
If( specs != Empty(),
dt << New Column( Column( dt, col ) << get name || " in Spec?", set each value( 1 ) );
lsl = specs["LSL"];
usl = specs["USL"];
inSpec = dt << get rows where( !(As Column( dt, col ) >= lsl & As Column( dt, col ) <= usl ));
If( Length( inSpec ) > 0,
Column( Column( dt, col ) << get name || " in Spec?" )[inSpec] = 0;
Column( col ) << color cells( "Red", inSpec );
);
);
);