Valores de tiempo en xls o xlsx, csv y JMPHola a todos, tengo un problema extraño con los valores de tiempo de mi Excel. Tengo algunos datos (el ejemplo se adjunta aquí como archivo de Excel), la columna de tiempo es un interés para mí y agregaría la columna de fecha y hora para crear una columna de fecha y hora. Para analizar los datos, utilizo JMP, así que estoy importando el archivo de Excel.
Sin embargo, me encontré con una serie de rarezas:
1. Cuando importo varios archivos (de los clientes para analizar sus datos), los valores de tiempo, los valores de tiempo (en segundos) son negativos y está comenzando desde 1899 cuando cambié el formato a mm: dd: aaaa hh: mm : ss. Cuando guardo el archivo como CSV nuevamente, luego lo abro nuevamente con JMP, los valores de tiempo son correctos (como se enumeran en el archivo de Excel original).
2. Cuando cambio el formato de los archivos de Excel a CSV, los valores de tiempo son correctos una vez importados a JMP. Para los archivos que son xls o xlsx, tendré que cambiarlos a CSV. ¿Porqué es eso?
A continuación se muestran notas de mis pensamientos sobre lo que está sucediendo y cómo llegué a las dos soluciones que dan como resultado un formato de fecha y hora deseado.
Como verá en la columna "Fórmula terrible", tuve que hacer un par de cosas como solución:
- Convierte la fecha y la hora en cadenas de caracteres y luego concatena ambas columnas. Copie las propiedades, péguelas en una nueva columna y luego cambie el formato a numérico. ¡Pero esto no siempre funciona!
- La función Second () extrajo valores negativos ... y solo Second (), lo cual fue interesante.la fórmula está debajo
- Informat (
Char (Formato (: Fecha, "mm / dd / aaaa")) || "" ||
Char (Hora (: Hora, 24)) || ":" || Char (Minuto (: Hora)) ||
":" || Char (60 + segundo (: tiempo)),
"mm / dd / aaaa HH: mm: ss"
)
Sin embargo, ambas soluciones parecen un poco laboriosas (además de guardar los excels importados a JMP como CSV y luego abrirlos con JMP nuevamente). ¿Existe otra forma de corregir los valores de tiempo más rápido? Automatizado? al importar los archivos de Excel a JMP?
AnalíticaTabla de datosScriptingRe: valores de tiempo en xls o xlsx, csv y JMPCorrección:
A continuación se muestran notas de mis pensamientos sobre lo que está sucediendo y cómo llegué a las dos soluciones que dan como resultado un formato de fecha y hora deseado.
1. Convierta la fecha y la hora en cadenas de caracteres, luego concatene ambas columnas. Copie las propiedades, péguelas en una nueva columna y luego cambie el formato a numérico. ¡Pero esto no siempre funciona!
2. La función Second () extrajo valores negativos ... y solo Second (), lo cual fue interesante.la fórmula está debajo
Informat (
Char (Formato (: Fecha, "mm / dd / aaaa")) || "" ||
Char (Hora (: Hora, 24)) || ":" || Char (Minuto (: Hora)) ||
":" || Char (60 + segundo (: tiempo)),
"mm / dd / aaaa HH: mm: ss"
)
Re: valores de tiempo en xls o xlsx, csv y JMP¿Está seguro de que el archivo de Excel que adjuntó es el correcto?El libro de trabajo contiene archivos con información sobre reuniones internas.
Re: valores de tiempo en xls o xlsx, csv y JMPPor favor ignore el adjunto en la publicación original y utilícelo como ejemplo. Gracias por captar eso.
Re: valores de tiempo en xls o xlsx, csv y JMPAbrí el archivo de Excel directamente en JMP, usé el asistente para indicar que el encabezado de datos estaba en la fila 6 y los datos comenzaron en la fila 7.Generaba el siguiente JSL
Open(
"$DOCUMENTS/Discussion Group/Time_issue_7Sep (2).xlsx",
Worksheets( "W-A20122_Halexistar_20210820-12" ),
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( 6 ),
Data Starts on Row( 7 ),
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( "-" ),
Column Numeric Format(
Index( 2 ),
Column Name( Variable 1 ),
Format( "Best", 9 )
),
Column Numeric Format(
Index( 3 ),
Column Name( Variable 2 ),
Format( "Best", 9 )
)
)
)
Los campos de fecha y hora se leen como valores JMP de fecha y hora correctos.Entonces todo lo que tuve que hacer fue correr
Names Default To Here( 1 );
dt = Current Data Table();
For Each Row( :Date = :Date + :time );
Importar varios archivos no parece poder manejar los desplazamientos de fila para leer correctamente los encabezados de la fila 6 y los datos que comienzan en la fila 7;
Le sugiero que cree su propio bucle JSL para leer en cada uno de los archivos utilizando el código de entrada anterior.
Re: valores de tiempo en xls o xlsx, csv y JMPEso está muy interesado. Abrí con el asistente, pero la secuencia de comandos de la fuente es diferente a la suya.
Open(
"C:\Users\liew-6\OneDrive - Mettler Toledo LLC\Desktop\JMP\Time_issue_7Sep.xlsx",
Worksheets( "W-A20122_Halexistar_20210820-12" ),
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( 6 ),
Data Starts on Row( 7 ),
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( "-" )
)
)
Y si cambié el formato de mi tiempo a 'mejor', se muestran valores negativos. Lo he adjuntado aquí.