こんにちは、
データテーブルを名前に基づいて連結したいと考えています。
たとえば、6 つのデータ テーブルがあり、それらの名前は M1a M1b M2a M2b M3a M3b のようなものになります。 したがって、すべての M1 デバイスを結合したいなどです。ただし、M1 の部分は名前によって異なるため、名前を取得して名前の一部を比較できるスクリプトが必要です。
始めるにあたっての助けは大歓迎です
テーブルはもう開いていますか? そうでない場合、それらは同じフォルダー内にあり、フォルダー内に他のファイルはありますか?
<< 名前の取得データテーブルの名前を取得するために使用できます。データテーブルリストの取得()オープンデータテーブルのリスト。 データ テーブル名を比較するには多くのオプションがあり、どれを使用するかはデータ テーブル名によって異なります (正規表現は 1 つのオプションです)。
これは、最終的なスクリプトをまとめるのに役立つスクリプトです。この例で使用するサンプル テーブルをいくつか作成し、それらを検索して名前の最初の 2 文字を照合し、最後にそれらを連結します。
Names Default To Here( 1 );
// create sample data tables
For( i = 1, i <= 6, i++,
New Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ), New Column( "D" ) );
Data Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ) ) << add rows( 1 );
Column( Data Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ) ), 1 )[1] = i;
);
// Find all data tables that match Mx
concatTableList = {};
shortNameList = {};
For( i = 1, i <= N Table(), i++,
If( Starts With( Data Table( i ) << get name, "M" ),
Insert Into( concatTableList, Data Table( i ) << get name );
Insert Into( shortNameList, Substr( Data Table( i ) << get name, 1, 2 ) );
)
);
// Find the unique key values
theKeys = Associative Array( shortNameList ) << get keys;
// Create the concatenated tables
For Each( {key}, theKeys,
catList = {};
For Each( {tableName}, concatTableList,
If( Starts With( tableName, key ),
Insert Into( catList, tableName )
)
);
If( N Items( catList ) > 1,
dt = New Table( key );
For Each( {cat}, catList, dt << concatenate( Data Table( cat ), append to first table ) );
);
);また、複数ファイルのインポートの使用を検討することもできます。 すべてのテーブルを 1 つのテーブルに結合し、ソース列を使用してサブセットに分割する (必要なグループのソース列に基づいて新しい列を作成する) か、ワイルドカード * (0 個以上の文字と一致する) を使用して MFI を複数回実行します。 (正確に 1 文字に一致) および ; (異なるファイル名パターンを分離) MFI の 1 回の実行ですべての単一グループを取得します。

これらはすべて同じ Excel ワークブックからのものであるため、これが機能するとは思えません。 このワークブックを開くと、各シートが新しいデータ テーブルになります。 これを機能させる方法はありますか?
単一の Excel ファイルの場合は、Excel インポート ウィザードを使用できます。

「ワークシートを連結して列の一致を試みる」と「連結時にワークシート名を使用して列を作成する」を有効にします。 JMP テーブルにデータを作成したら、必要に応じてグループ化列を作成し、サブセットを作成します。