スクリプトを使用してxlsファイルをjmpにインポートする際に問題があります
行「7」をヘッダーとして使用してこのファイルをインポートし、新しい列「ロット ID」の塗りつぶしデータを B3 セル データ (B6C141-02B5) として新しい列に追加したい
これどうやってするの
ありがとうございます

txNelson と Ian の両方が述べたように、データ テーブルは統計分析に適した形式ではありませんが、残念ながら業界では、特にスプレッドシート ツールが主に使用されている場合によくあることです。 統計データは、可能な限り長方形の列と行に配置する必要があります。 それ以外の場合は、ベクトルと行列を使用する代わりに、計算のために各セルを指定する必要があります。これははるかに効率的です。 そのため、txNelson はシートを 2 回インポートし、Ian が同様の方法で行ったように情報を抽出しました。
しばらく前に、Excel からデータをインポートするためのヒントについてのディスカバリー プレゼンテーションを行いました。 Getting-around-around-common-pitfalls-working-with-Excel-data-in-JMP (2016 JMP Discovery Summit Europe)
Excel からのインポートに関するブログもいくつか書いています。 あなたとは異なるケースですが、他の状況に役立つかもしれません:
Excel と JMP に関する Martin のブログ
少しJSLを知っておく必要があると思いますが、これで始められるはずです。 「最良の」アプローチは、与えられた例を超えて、データの構造について何を想定できるか (およびできないか) によって決定されます。
このコードはまったく堅牢ではなく、ファイルが「ダウンロード」フォルダーにあることを前提としています。 「Help > Books > Scripting Guide」を見れば、おそらくそれが何をしているのか理解できるでしょう (コーディングの経験がどれだけあるかにもよります)。
NamesDefaultToHere(1);
dt = Open("$DOWNLOADS/test_import.xlsx");
lid = Column(dt, 2)[2];
colNames = {};
InsertInto(colNames, Column(dt, 1)[11]);
InsertInto(colNames, Column(dt, 2)[11]);
InsertInto(colNames, Column(dt, 3)[7]);
InsertInto(colNames, Column(dt, 4)[7]);
InsertInto(colNames, Column(dt, 5)[7]);
InsertInto(colNames, Column(dt, 6)[7]);
InsertInto(colNames, Column(dt, 1)[2]);
dt << deleteRows(1::11);
for(c=1, c<=NItems(colNames), c++, Column(dt, c) << setName(colNames[c]));
Column(dt, colNames[NItems(colNames)]) << setValues(Repeat(lid, NRows(dt)));
dt << setName("Data for lot "||lid);ここにあなたのデータを入力するためのスクリプトがあります
JMP Excel ウィザードを使用して対話的にファイルを開き、JMP が作成したソース スクリプトをコピーしてスクリプトに配置しました。スクリプトはファイルを 2 回読み取ります。最初にデータを読み込み、次にロット ID を読み込みます。次に、インポートする Excel ファイルを選択できるようにするコードと、新しいロット ID 列を作成するために必要な JSL を追加しました。
names default to here(1);
path = Pick File();
dt = Open(
path,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 7 ),
Headers Start on Row( 6 ),
Data Starts on Row( 13 ),
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( "-" )
)
);
dtLotID = Open(
path,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 7 ),
Headers Start on Row( 6 ),
Data Starts on Row( 3 ),
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( "-" )
)
);
lotID = dtLotID:Column 2[1];
close(dtLotID, nosave );
dt << New Column("Lot ID", Character, set each value(lotID));