Importe datos de Excel donde no se encuentre toda la información en una sola fila o columnaEstoy tratando de importar un archivo de datos ExceI que tiene el nombre en la Fila 1, pero los encabezados de columna de datos reales comienzan en la Fila 7 y los datos comienzan en la Fila 8 (consulte el archivo adjunto). Me gustaría que los datos importados se vean así:
Nombre Fecha Flujo-acft Concentración-ug / L (25) Toneladas métricas de carga (25)
S382_P 18/06/2015 90.890579 93 0.010426405
¿Alguien tiene sugerencias sobre cómo puedo leer en este tipo de datos para que el nombre de la estación esté asociado con los datos? Por favor hagamelo saber. ¡Gracias!
Re: Importe datos de Excel donde no se encuentre toda la información en una sola fila o columnaSi usa el Asistente de Excel, es un asunto simple hacer esto. En JMP, vaya a
Archivo ==> Abrir
Luego navega a la ubicación de la hoja de cálculo de Excel.
Haga clic una vez en el archivo que desea leer para resaltarlo.
Luego, vaya al área inferior izquierda de la ventana de navegación y haga clic en la flecha desplegable junto a Abrir.
Seleccione "Use Excel Wizard"
En el asistente, podrá seleccionar la fila que tiene los encabezados de columna (6)
y la fila donde comienzan los datos (7)Re: Importe datos de Excel donde no se encuentre toda la información en una sola fila o columnaJim, las instrucciones proporcionadas están bien si todos los datos están contenidos en columnas separadas pero tengo un diseño de archivo diferente. En el archivo adjunto, verá que el nombre de la estación aparece solo una vez en Fila 1 , mientras que los encabezados comienzan en Fila 7 y los datos en Fila 8 Los nombres de las estaciones se "apilan" encima de los encabezados y columnas de datos. Déjeme saber cómo puedo leer el nombre de la estación, luego asociar ese nombre de estación al encabezado / datos apropiados.
En el archivo de ejemplo adjunto, los datos se enumeran para 4 estaciones y los nombres de estas estaciones se encuentran en las direcciones de archivos de Excel: A1, I1, Q1, Y1 (resaltadas en amarillo). Para la primera estación en el archivo, el nombre de la estación es S382_P (se encuentra en A1), y los datos para esa estación se encuentran en las columnas A - H (el encabezado comienza en Row7 y los datos en Row8); la segunda estación es S382_C (se encuentra en I1) y los datos para esa estación se encuentran en las columnas I - P, etc. Me gustaría que los datos importados se vean así cuando los convierta en un archivo de datos JMP:
Nombre Fecha Flujo-acft Concentración-ug / L (25) Toneladas métricas de carga (25) más columnas . .
S382_P 18/06/2015 90.890579 93 0.010426405
Re: Importe datos de Excel donde no se encuentre toda la información en una sola fila o columnaLo siento ... malinterpreté tu pregunta original. A continuación se muestra una secuencia de comandos que funciona con la tabla de datos de muestra que proporcionó. Simplemente cambie la ruta en la función Abrir () a la ruta a su tabla de datos y luego ejecute el 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>

Re: Importe datos de Excel donde no se encuentre toda la información en una sola fila o columnaGracias . . . pero el script funciona si solo tengo 1 línea de datos. Pero no parece funcionar con múltiples líneas de datos. Lo sentimos, envié un archivo corto como ejemplo, pero los archivos de datos con los que trabajo tienen varias líneas de datos. Adjunté la versión más larga del archivo a este correo electrónico (por favor vea la hoja de trabajo "ejemplo"). Sería genial si pudiera ayudarme con la lectura de varias líneas de datos.
[cid: image001.png@01D51188.A1E017A0]
Re: Importe datos de Excel donde no se encuentre toda la información en una sola fila o columnaParece que pudiste haber adjuntado una imagen, pero por alguna razón no funcionó. ¿Puedes volver atrás y editar tu publicación para intentar adjuntar la imagen nuevamente?Re: Importe datos de Excel donde no se encuentre toda la información en una sola fila o columnaSi las múltiples líneas a las que hace referencia son líneas adicionales después de la línea 8, que tienen la misma estructura que la línea 8, la siguiente secuencia de comandos funcionará
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>