既存のテーブルに連結するために、ワークブックのタイトルを含む特定のワークシートを Excel にインポートする際にサポートが必要です私は大量の Excel ファイルを持っており、そこから JMP にデータを転送して分析しています。最近まで、Excel ファイルを手動で開き、関連情報を JMP テーブルに直接コピーするという非常に古風な方法でこれを実行していました。これは妥当な方法ですが、インポート機能 (および既存のデータ テーブルに追加する連結) の方が、長期的には有効性を向上させるはるかに優れたソリューションであると私は信じています。
関連情報は各ワークブックのシート 4 にあり、「サイクル」というラベルが付いています。JMP テーブルを更新するには、一度に 4 から 20 個のワークブックをインポートする必要があります。各ワークブックには、通常 8 文字の文字列タイトルがあります。これは、テスト対象のオブジェクトの一意の識別子です。
私の質問は次のとおりです。インポート時に生成されたテーブルの名前 (たとえば、現在 8 つのファイルをインポートすると、JMP で生成されるテーブルは「サイクル」、「サイクル 2」、「サイクル 3」などになります) を、元の Excel ワークブックのタイトル (この例では、「ワークブック 1」、「ワークブック 2」、「ワークブック 3」などになります) に置き換えることは可能ですか?
次の質問は連結についてです。特定のセル (たとえば、スクリプトによって生成された、インポート時にワークブックのタイトルを特定の列にコピーするセル) を分析し、そのセル内の値を使用して残りの列の情報を既存の JMP テーブルに追加するスクリプトを作成することは可能ですか?
わかりやすくするために、この場合は「A71320」というラベルの付いたオブジェクトをテストしているとします。このテスト オブジェクトに関連するすべてのデータをまとめた「A71320」という JMP データ テーブルがあります。新しいテストごとに、同じく「A71320」というラベルの付いた Excel ファイルが生成されます。このファイルをスクリプトを使用してインポートしたいと思います。正しく理解していれば、シート 4「cycle」からすべてのデータをコピーし、「cycle」というラベルの付いた新しい JMP テーブルを作成し、この新しいテーブル内に「A71320」という 1 つのセルを含む新しい列を作成します。次に、このセル「A71320」を確認し、JMP 内の「A71320」という既存のテーブルを認識し、「cycle」から「A71320」までのタイトル セルを除くすべての情報を追加するスクリプトを実行したいと思います。これは可能ですか?
この質問を読んでくださり、誠にありがとうございます。
アンテロープ
大量カスタマイズウィンドウズRe:既存のテーブルに連結するためのワークブックタイトルが付いたExcelの特定のワークシートをインポートするのに助けが必要これは難しい作業ではないようですが、具体的な詳細があいまいすぎて、ニーズを満たすスクリプトを作成することはできません。入力Excelワークブックと最終データテーブルのサンプルは、スクリプトの開発をガイドするのに非常に役立ちます。
Re:既存のテーブルに連結するためのワークブックタイトルが付いたExcelの特定のワークシートをインポートするのに助けが必要やあ@txnelson 、
私はあなたを聞く! 添付をご覧ください。 上記のように、私は「新しい」A71322.xlsファイルを頻繁に生成します。 ファイルの各インスタンスは一意であり(私はそれらを格納/区別するためのファイルシステム構造を持っています)、それぞれが.jmpテーブルで説明されている「実行」に対応します。 私は通常、Excelファイルを手動で開き、「サイクル」ワークシートの列ヘッダーの下にあるすべてのデータをコピーしてから、「サイクルID」列の最後のエントリの下にある.jmpテーブルに貼り付けます。 「合計サイクル数」と「実行」の式は、データテーブルに正しいエントリを生成します。
これまで、Excelブック、サイクルシートのみをインポートし、基本連結関数を使用することで、上記を再現することができました。 ただし、現在は遅く、シート名のみがインポートされるという事実(たとえば、4つのワークブックをインポートすると、「サイクル」、「サイクル1」、「サイクル2」、「サイクル3」になります)が混乱することがあります。 私が行ったように、手動で続行する方が高速です。
ただし、私のデータセットは継続的に増加しているため、スクリプトソリューションを探しています。 私は複数のバッテリー(つまり、A71321、A71311など)のテストを実行し、提供されたソリューションを適応させることができると確信しています。
もう1つ注意すべき点として、セルのタイトルはシート「テスト」のセルI-6にあります(ただし、これは私のシナリオでブックのタイトルをインポートできるほど柔軟ではありません)。 )。
繰り返しになりますが、私のリクエストをお読みいただき、今後の返信をお待ちしております。 さらに情報が必要な場合は、お答えします。
よろしく、
アンテロープ
Re:既存のテーブルに連結するためのワークブックタイトルが付いたExcelの特定のワークシートをインポートするのに助けが必要これは、タスクを完了するための独自のスクリプトを作成するための良いスタートを切るためのスクリプトです。提供されているスクリプトをよく読んで、それがどのように機能するかを理解してください。
Names Default To Here( 1 );
// Set the object in question
object = "A71322";
// Get a list of input xls files to proces
// I am using the method where all files to be processed are moved into a single directory
dir = "C:\users\xxxx\input files\";
theFiles = Files In Directory( dir );
// Create the start of the final data table
dt = New Table( "Combined",
New Column( "Run",
formula(
If(
Row() == 1, 1,
:Cycle ID == 1 & Lag( :Cycle ID ) != 1, Lag( :Run ) + 1,
Lag( :Run )
)
)
),
New Column( "Total Cycle Number", formula( Row() ) )
);
// Loop through all of the file names and select only object in question files
For( i = 1, i <= N Items( theFiles ), i++,
If( Contains( theFiles[i], object ) == 1,
dtCycle = Open(
Char( dir ) || theFiles[i],
Worksheets( "cycle" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
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( "-" )
)
);
dt = dt << concatenate( dtCycle, Append to first table( 1 ) );
// Clean up
Close( dtCycle, nosave );
)
);