セル内の特定の単語の存在に基づいて行を削除するみなさん、こんにちは!これは、さまざまな機器からのデータ ファイルを扱う多くの人にとって一般的な状況だと思います。私のデータ セットは、特定の機器からの複数の出力ファイルをつなぎ合わせて作成されています。有用なデータ行の他に、各出力ファイルの上部に、レシピ、ファイルなどを指定する行がいくつかあります。通常、この情報は列 1 にあります。データの処理にはその情報は必要ないので、列 1 のセルにある上記の単語「レシピ」、「ファイル」などを含む不要な行を削除したいと思います。同じセルに他の単語 (たとえば、「ウェーハ レシピ名」や「ステージ グループ ファイル」など) がある可能性があることに注意してください。次のいくつかの組み合わせを試しましたが、常に「送信では、「送信」の評価へのアクセスにスクリプト可能なオブジェクトが必要です」というエラー メッセージが表示されます。よろしくお願いします。
dt_new2 << (:列 1、"レシピ") を含む行を取得します。
dt_new2 << 行を削除;
待つ(1);
dt_new2 << (:列 1、"ファイル") を含む行を取得します。
dt_new2 << 行を削除;
待つ(1)
自動化とスクリプトデータのブレンドとクリーンアップRe: セル内の特定の単語の存在に基づいて行を削除するこれを試してみてください
Names Default To Here( 1 );
dt_new2 = Current Data Table();
dt_new2 << select where( Contains( :Column 1, "Recipe" ) );
dt_new2 << delete rows;
Wait( 0 );
dt_new2 << select where( Contains( :Column 1, "File" ) );
dt_new2 << delete rows;
スクリプトインデックス
ヘルプ=>スクリプトインデックス
ステートメント構文と例の優れた情報源です。
また、JMPヘルプにあるスクリプトガイドをじっくり読むことをお勧めします。
Re: セル内の特定の単語の存在に基づいて行を削除する引数なしで << Delete Rows だけを使用する場合は、行を選択する必要があります (Jim が示したように)。他のオプションは、行を変数に収集してそれを使用することです (「不要な」行選択をスキップするため、私の推奨する方法ですが、デバッグする場合は選択がより視覚的になります)。
Names Default To Here(1);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "Recipe"));
dt_new2 << delete rows(rows_to_delete);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "File"));
dt_new2 << delete rows(rows_to_delete);
この動作はスクリプトインデックスには記載されていません。

ただし、JSL 構文リファレンスデータ テーブル メッセージ (jmp.com)およびスクリプト ガイド行の削除 (jmp.com)から見つけることができます (スクリプト エディタから行の削除を検索し、トピック ヘルプを押してください)。
Re: セル内の特定の単語の存在に基づいて行を削除するこんにちは、txnelson さん、返信ありがとうございます。前にも言ったように、select where + contains などの関連コマンドをいくつか試してみましたが、先頭に Names default to here というステートメントがないと、この方法は以前は機能しませんでした。このルーチンは今では機能しています。ご意見をありがとうございました。乾杯!
Re: セル内の特定の単語の存在に基づいて行を削除するこんにちは、jthi さん。返信ありがとうございます。私はいつも変数にもっと頼るように自分に言い聞かせていますが、残念ながら、他に選択肢がないときだけそうしています。素晴らしい提案です。きっと他の多くの人にも役立つと思います。乾杯!
Re: セル内の特定の単語の存在に基づいて行を削除する変数なしでも実行できますが、読みにくくなり、問題が発生した場合のデバッグが難しくなるため、お勧めしません。
Names Default To Here(1);
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "Recipe")));
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "File")));