RE:同じ列で一致する文字値を選択します。こんにちは、
この問題を解決するためにループを利用できることはわかっていますが、JSLのデータテーブルの1行に一致する文字の値を見つけるための関数/別の方法があるかどうか疑問に思いましたか?
任意の助けがいただければ幸いです。
RE:同じ列で一致する文字値を選択します。ジムは素晴らしい提案をしました。これはもう1つの選択肢です。結合列を使用します。 UIから、
- 検索する列を選択します。下の例の表では、C1からC10までです。
- メインメニュー> Cols> Utilities> Combine Columnsの順に選択し、区切り文字としてカラット(^)を使用し、新しい列を "Search"と呼びました。
- 新しい列を作成して関数を作成します。ここで私は "y"を探しています。 あなたがカウントが欲しいならば、式を使ってください。注意Words(:Search、"^")は列値のリストを作成し、Locは検索文字列( "y")に一致する位置を返し、N RowはCountです。
N Row( Loc( Words( :Search, "^" ), "y" ) )
- どの列(ここでは "y"を探しています)を知りたい場合は、以下の式を使用してください。どの列に検索文字列が含まれているかのベクトルを返します。たとえば、[1,5,7]または[]が一致しない場合。
Loc( Words( :Search, "^" ), "y" )
サンプルテーブルを作成し、結合列を作成し、Countとlocの2つの式列を作成するスクリプトが添付されています
RE:同じ列で一致する文字値を選択します。RowNumという列を作成し、それに式を付けます。
Row();
次にStack Platformを実行します
テーブル==>スタック
一致させたい文字列をすべて積み重ねる。 新しいデータテーブルに含める列RowNumも選択します。
サマリープラットフォームを実行する
テーブル==>概要
統計列として「N」を選択し、統計列としてDataという列を選択し、次にグループ列としてRowNum列を選択します。
これにより、新しいデータテーブルが作成されます。ここで、N行という列には、各行の各値に対する一致数が示されます。 1つだけ一致が見つかったセルの1つを選択し、そして右クリックします。 "Select Matching Cells"を選択します。 一致する行がすべて選択されたら、RowState列に移動し、選択された行の1つを右クリックします。 「行を削除」を選択します。 残っているのは、それらの行の値に一致するすべての行です。