すべての情報が1行または1列に含まれていないExcelデータをインポートする1行目に名前があり、実際のデータ列ヘッダーが7行目から始まり8行目から始まるExceIデータファイルをインポートしようとしています(添付ファイルを参照してください)。 インポートしたデータを次のようにします。
名前日付流量 - 平均濃度 - μg/ L(25)積載メートルトン(25)
S382_P 06/18/2015 90.890579 93 0.010426405
ステーション名がデータに関連付けられるように、このタイプのデータを読み込む方法について誰かが提案をしていますか?私にお知らせください。 ありがとうございました!
再:すべての情報が単一行または列に見つからないExcelデータをインポートするExcelウィザードを使用する場合、これを実行するのは簡単なことです。JMPでは、
ファイル==>開く
次に、Excelスプレッドシートの場所に移動します。
読み込みたいファイルを1回クリックして強調表示します。
次に、ナビゲーションウィンドウの左下の領域に移動して、[開く]の横にあるドロップダウン矢印をクリックします。
[Excelウィザードを使用する]を選択します。
ウィザードでは、列見出しを持つ行を選択することができます(6)
そしてデータが始まる行(7)再:すべての情報が単一行または列に見つからないExcelデータをインポートするJimさん、すべてのデータが別々の列に含まれていてもファイルレイアウトが異なる場合は、表示される手順は問題ありません。 添付ファイルでは、ステーション名が1回しか表示されないことがわかります。 1行目ヘッダは行7 とのデータ行8 ステーション名は、データのヘッダーと列の上に「積み重ね」られています。 ステーション名の読み方を教えてください。次に、そのステーション名を適切なヘッダー/データに関連付けます。
添付のサンプルファイルでは、データは4つの測点についてリストされており、これらの測点の名前はExcelファイルアドレスにあります:A1、I1、Q1、Y1(黄色で強調表示)。 ファイルの最初のステーションでは、ステーション名はS382_P(A1にあります)で、そのステーションのデータは列AからHにあります(ヘッダーは行7で始まり、行8のデータ)。2番目のステーションはS382_C(I1にあります)で、そのステーションのデータはI - P列などにあります。 JMPデータファイルにするときは、インポートしたデータを次のようにします。
名前日付流量 - 平均濃度 - μg/ L(25)積載トン(25) より多くの列。 。。
S382_P 06/18/2015 90.890579 93 0.010426405
再:すべての情報が単一行または列に見つからないExcelデータをインポートする申し訳ありません....私はあなたの最初の質問を誤って解釈しました。 以下は、提供したサンプルデータテーブルと連携するスクリプトです。 Open()関数のパスをデータテーブルへのパスに変更してから、スクリプトを実行してください。
Names default to here(1);
dtOrig = Open(
"<PATH to="" excel="" file="">\Excel_import_example_file.xlsx",
Worksheets( "example" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 1 ),
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( "-" )
)
);
// Create a new table with the Column names on row 7 from the original
dtResult = New Table("Final");
dtResult << New Column("Name",Character);
col=1;
While(col>0,
dtResult << New Column(dtOrig[7,col]);
If(left(dtOrig[1,col+1],5)=="Name:",col=-1);
col=col+1;
);
// Now Populate the Table
For( col = 1, col <= N Cols( dtOrig ), col++,
If( Left( dtOrig[1, col ], 5 ) == "Name:",
dtResult << Add Rows( 1 );
resultCol = 1;
Column( dtResult, resultCol)[ N Rows( dtResult ) ] = Trim( Substr( Column( dtOrig, col )[1], 6 ) );
);
resultCol = resultCol + 1;
Column( dtResult, resultCol)[ N Rows( dtResult ) ] = Num( Column( dtOrig, col )[8] );
);
close( dtOrig, nosave );</PATH>

再:すべての情報が単一行または列に見つからないExcelデータをインポートするありがとう。。。しかし、私が1行のデータしか持っていなければ、スクリプトは機能します。しかし、複数行のデータではうまくいかないようです。申し訳ありませんが、例として短いファイルを送信しましたが、使用するデータファイルに複数行のデータがあります。私はこの電子メールにもっと長いバージョンのファイルを添付しました(plsはワークシート "example"を見てください)。あなたが私が複数行のデータを読むのを手伝ってくれるなら、それは素晴らしいことです。
[cid:image001.png@01D51188.A1E017A0]
再:すべての情報が単一行または列に見つからないExcelデータをインポートする画像を添付したように見えるかもしれませんが、何らかの理由で機能しませんでした。あなたは戻ってあなたの投稿を編集してもう一度画像を添付しようとすることができますか?再:すべての情報が単一行または列に見つからないExcelデータをインポートするあなたが参照している複数の行が、8行目の後に追加の行であり、それが8行目と同じ構造であるならば、次のスクリプトはうまくいくでしょう。
Names Default To Here( 1 );
dtOrig = Open(
"<PATH to="" file="">\Excel_import_example_file.xlsx",
Worksheets( "example" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 1 ),
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( "-" )
)
);
// Create a new table with the Column names on row 7 from the original
dtResult = New Table( "Final" );
dtResult << New Column( "Name", Character );
col = 1;
While( col > 0,
dtResult << New Column( dtOrig[7, col] );
If( Left( dtOrig[1, col + 1], 5 ) == "Name:",
col = -1
);
col = col + 1;
);
For( theRow = 8, theRow <= N Rows( dtOrig ), theRow++,
// Now Populate the Table
For( col = 1, col <= N Cols( dtOrig ), col++,
If( Left( dtOrig[1, col], 5 ) == "Name:",
dtResult << Add Rows( 1 );
resultCol = 1;
Column( dtResult, resultCol )[N Rows( dtResult )] = Trim( Substr( Column( dtOrig, col )[1], 6 ) );
);
resultCol = resultCol + 1;
Column( dtResult, resultCol )[N Rows( dtResult )] = Num( Column( dtOrig, col )[theRow] );
)
);
Close( dtOrig, nosave );</PATH>