Importa dati Excel in cui non tutte le informazioni vengono trovate in una singola riga o colonnaSto cercando di importare un file di dati ExceI che ha il nome nella riga 1 ma le intestazione delle colonne di dati effettive iniziano nella riga 7 e i dati iniziano nella riga 8 (vedere il file allegato). Mi piacerebbe avere i dati importati in questo modo:
Nome Data Flow-acft Concentration-ug / L (25) Load- metric tons (25)
S382_P 18/06/2015 90.890579 93 0.010426405
Qualcuno ha suggerimenti su come posso leggere in questo tipo di dati in modo che il nome della stazione sia associato ai dati? Per favore mi faccia sapere. Grazie!
Ri: Importare dati di Excel in cui non tutte le informazioni vengono trovate in una singola riga o colonnaSe si utilizza la procedura guidata di Excel, è semplice farlo. In JMP, vai a
File ==> Apri
Quindi accedere alla posizione del foglio di calcolo di Excel.
Fare clic una volta sul file che si desidera leggere, per evidenziarlo.
Quindi vai all'area in basso a sinistra della finestra di navigazione e fai clic sulla freccia a discesa accanto a Apri.
Seleziona "Usa procedura guidata di Excel"
Nella procedura guidata, sarà possibile selezionare la riga contenente le intestazioni delle colonne (6)
e la riga da cui partono i dati (7)Ri: Importare dati di Excel in cui non tutte le informazioni vengono trovate in una singola riga o colonnaJim, le istruzioni fornite sono OK se tutti i dati sono contenuti in colonne separate ma ho un layout di file diverso. Nel file allegato, vedrai che il nome della stazione appare solo una volta Riga 1 , mentre le intestazioni iniziano Riga 7 e i dati in Riga 8. I nomi delle stazioni sono "impilati" sopra le intestazioni e le colonne dei dati. Per favore fatemi sapere come posso leggere il nome della stazione, quindi associare il nome della stazione all'intestazione / dati appropriata.
Nel file di esempio allegato, i dati sono elencati per 4 stazioni ei nomi di queste stazioni si trovano negli indirizzi dei file Excel: A1, I1, Q1, Y1 (evidenziato in giallo). Per la prima stazione nel file, il nome della stazione è S382_P (trovato in A1), e i dati per quella stazione si trovano nelle colonne A - H (l'intestazione inizia in Row7 e i dati su Row8); la seconda stazione è S382_C (trovata in I1) e i dati per quella stazione si trovano nelle colonne I - P, ecc. Mi piacerebbe che i dati importati assomiglino a questo quando creo un file di dati JMP:
Nome Data Flow-acft Concentration-ug / L (25) Load-metric tons (25) più colonne. . .
S382_P 18/06/2015 90.890579 93 0.010426405
Ri: Importare dati di Excel in cui non tutte le informazioni vengono trovate in una singola riga o colonnaMi dispiace .... Ho interpretato male la tua domanda originale. Di seguito è riportato uno script che funziona con la tabella di dati campione fornita. Basta modificare il percorso nella funzione Open () sul percorso della tabella dati e quindi eseguire lo script.
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>

Ri: Importare dati di Excel in cui non tutte le informazioni vengono trovate in una singola riga o colonnaGrazie . . . ma lo script funziona se ho solo 1 riga di dati. Ma non sembra funzionare con più linee di dati. Spiacenti, ho inviato un breve file come esempio, ma i file di dati con cui lavoro hanno più righe di dati. Ho allegato la versione più lunga del file a questa email (vedere il foglio di lavoro "esempio"). Sarebbe bello se tu potessi aiutarmi a leggere su più righe di dati.
[Cid: image001.png@01D51188.A1E017A0]
Ri: Importare dati di Excel in cui non tutte le informazioni vengono trovate in una singola riga o colonnaSembra che tu abbia allegato un'immagine, ma per qualche motivo non ha funzionato. Puoi tornare indietro e modificare il tuo post per provare ad allegare nuovamente l'immagine?Ri: Importare dati di Excel in cui non tutte le informazioni vengono trovate in una singola riga o colonnaSe le linee multiple a cui ti riferisci sono linee aggiuntive dopo la linea 8, che sono della stessa struttura della riga 8, allora il seguente script funzionerà
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>