異なるワークブックのデータをスタック形式で組み合わせるJMP エキスパートの皆様、こんにちは。
異なる Excel ワークブックのデータを 1 つのヘッダーの下に積み重ねて、1 つの JMP ファイルにまとめるオプションを探しています。
複数のワークブックからデータをインポートするための最適なオプションを提案してください [ワークシートではないことに注意してください]
ちなみに、私はMac OSでJMP 15 proを使用しています。
前もって感謝します。
Re: 異なるワークブックのデータをスタック形式で結合する「theFiles」リストの定義が正しくないか、存在しないようです。theFiles の値と変数 i の値は?
Re: 異なるワークブックのデータをスタック形式で結合するこのスクリプトを試したところ、次のエラーが発生しました。 何が起こったのかわからないので、あなたが助けてくれるかどうか疑問に思っています。 ありがとう。

Re: 異なるワークブックのデータをスタック形式で結合する- 私が提供したスクリプトは、読み込まれるワークブックの JSL リストに基づいています。そのリストは theFiles と呼ばれます。私のスクリプトでは、特定のディレクトリ/フォルダー構造からすべての .xlsx ファイルを読み取ることによって作成されます。ただし、それを変更して、そのリストを手動で作成することができます。
theFiles = {"complete path to workbook 1", "complete path to workbook 2"
"complete path to workbook 3" };「ワークブック n への完全なパス」がどのようなものになるかを示す例は次のとおりです。"C:\Excel Data\2020\January\Department21 Monthly.xlsx"
したがって、3 行目から 11 行目のコードを削除して、"theFiles" リストの新しい定義に置き換えるだけで、スクリプトは求めている結果を返すはずです。
- スクリプトは、開いたワークブックからすべてのワークシートを読み込み、それらを単一の JMP データ テーブルに配置します。その後、スクリプトは、スクリプトが作成する最終的なデータ テーブル全体に追加します。
- スクリプトの使用と保守を担当できるように、JMP JSL のスキルに取り組む必要があります。または、それがあなたの仕事の定義に含まれていない場合は、コードをサポートする人を雇うための予算を見つける必要があります.渡されたばかりのスクリプトを使用することは、非常に疑問です。JMP は、JSL の学習に関するドキュメント、サンプル、チュートリアルを無料で提供しています。さらに、JSL の「有償」のトレーニング クラスを提供しています。JMP コミュニティ ディスカッションの参加者は、問題解決を支援するために参加していますが、必要な完成したスクリプトを作成できると想定するのは間違っています。
- 以下は、元のスクリプトを変更したもので、読みたいブックへのパスを手動で入力するサンプルコードを配置しています
Names Default To Here( 1 );
theFiles = {"complete path to workbook 1", "complete path to workbook 2"
"complete path to workbook 3" };
// create the base data table that all other tables will be concatenated to
dtFinal = New Table( "All Data" );
// loop through all .xlsx files and concatenate them to dtFinal
// the Concatenate Worksheets(1) will result in a single data table
// for each workbook read in and that single data table will be concatenated
// to the dtFinal
For( i = 1, i <= N Items( theFiles ), i++,
dt = Open(
theFiles[i],
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// concatenate the new table with the dtFinal table
dtFinal << concatenate( dt, append to first table( 1 ) );
// delete the no longer needed data table dt
Close( dt, nosave );
);Re: 異なるワークブックのデータをスタック形式で結合する迅速な対応をありがとう、txnelson。
しかし、正直なところ、.jsl スクリプトの編集は苦手です。 上記の共有jslスクリプトで編集する必要があるすべてのステップがどれかわかりません。
今、私は「n」の番号を持っています。同様の種類の Excel ワークブックを 1 つのフォルダーにまとめます。 各 Excel ワークブックには複数のシートがありますが、私の焦点は、すべてのワークブックから「データ」という名前のワークシートの情報をクラブにすることです。
このシナリオを想定して、指定されたスクリプトを編集する方法を教えてください。
また、「複数ファイルのインポート」ウィザードについて何か考えがある場合は、特定のシナリオで提案してください。 個々のワークブックにワークシートが 1 つしかない場合、複数のワークブックからデータをクラブ化できます。 しかし、私がここで示したシナリオに従うべき正しいステップは何なのかわかりません。各ワークブックに複数のワークシートがある場合]Re: 異なるワークブックのデータをスタック形式で結合する以下は、この問題へのアプローチ方法のアイデアを提供する例です。実際の構造の詳細に基づいて、おそらく変更を加える必要があります
Names Default To Here( 1 );
// get the workbooks to be processed
theFiles = Files in Directory(<YOUR path="">, recursive(1) );
// reduce the list to only .xlsx entries
For( i = N Items( theFiles ), i >= 1, i--,
If( Word( -1, theFiles[i], "." ) != "xlsx",
Remove From( theFiles, i, 1 )
)
);
// create the base data table that all other tables will be concatenated to
dtFinal = New Table( "All Data" );
// loop through all .xlsx files and concatenate them to dtFinal
// the Concatenate Worksheets(1) will result in a single data table
// for each workbook read in and that single data table will be concatenated
// to the dtFinal
For( i = 1, i <= N Items( theFiles ), i++,
dt = Open(
theFiles[i],
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// concatenate the new table with the dtFinal table
dtFinal << concatenate( dt, append to first table( 1 ) );
// delete the no longer needed data table dt
Close( dt, nosave );
);</YOUR>