Valeurs temporelles au format xls ou xlsx, csv et JMPSalut à tous, j'ai un problème étrange avec les valeurs de temps de mon excel. J'ai quelques données (un exemple est joint ici en tant que fichier excel), la colonne de temps est un intérêt pour moi et j'ajouterais la colonne de date et d'heure ensemble pour créer une colonne de date et d'heure. Pour analyser les données, j'utilise JMP donc j'importe le fichier excel.
Cependant, j'ai rencontré un certain nombre de bizarreries:
1. Lorsque j'importe plusieurs fichiers (de clients pour analyser leurs données pour eux), les valeurs de temps les valeurs de temps (en secondes) sont négatives et c'est à partir de 1899 que j'ai changé le format en mm:jj:aaaa hh:mm :ss. Lorsque j'enregistre à nouveau le fichier au format CSV, puis que je l'ouvre à nouveau avec JMP, les valeurs temporelles sont correctes (comme indiqué sur le fichier Excel d'origine).
2. Lorsque je change le format des fichiers Excel en CSV, les valeurs temporelles sont correctes une fois importées dans JMP. Pour les fichiers qui sont xls ou xlsx, je devrai les changer en CSV. Pourquoi donc?
Vous trouverez ci-dessous des notes de mes réflexions sur ce qui se passe et comment je suis arrivé aux deux solutions qui aboutissent au format date-heure souhaité.
Comme vous le verrez dans la colonne « Formule terrible », j'ai dû faire plusieurs choses comme solution de contournement :
- Convertissez la date et l'heure en chaînes de caractères, puis concaténez les deux colonnes. Copiez les propriétés, collez-les dans une nouvelle colonne, puis redéfinissez le format en numérique. Mais cela ne fonctionne pas toujours !
- La fonction Second() a extrait des valeurs négatives… et seulement Second(), ce qui était intéressant.la formule est ci-dessous
- Informer(
Car( Format( :Date, "mm/jj/aaaa" ) ) || " " ||
Char( Heure( :Heure, 24 ) ) || ":" || Char( Minute( :Heure ) ) ||
":" || Char( 60 + Seconde( :Time ) ),
"mm/jj/aaaa HH:mm:ss"
)
Cependant, les deux solutions semblent un peu laborieuses (en plus de sauvegarder les fichiers Excel importés dans JMP au format CSV, puis de les ouvrir à nouveau avec JMP). Existe-t-il un autre moyen de corriger les valeurs de temps plus rapidement ? Automatique? lors de l'importation des fichiers Excel dans JMP ?
AnalytiqueTableau de donnéesScriptRe : Valeurs temporelles en xls ou xlsx, csv et JMPCorrection:
Vous trouverez ci-dessous des notes de mes réflexions sur ce qui se passe et comment je suis arrivé aux deux solutions qui aboutissent au format date-heure souhaité.
1. Convertissez la date et l'heure en chaînes de caractères, puis concaténez les deux colonnes. Copiez les propriétés, collez-les dans une nouvelle colonne, puis redéfinissez le format en numérique. Mais cela ne fonctionne pas toujours !
2. La fonction Second() a extrait des valeurs négatives… et seulement Second(), ce qui était intéressant.la formule est ci-dessous
Informer(
Car( Format( :Date, "mm/jj/aaaa" ) ) || " " ||
Char( Heure( :Heure, 24 ) ) || ":" || Char( Minute( :Heure ) ) ||
":" || Char( 60 + Seconde( :Time ) ),
"mm/jj/aaaa HH:mm:ss"
)
Re : Valeurs temporelles en xls ou xlsx, csv et JMPÊtes-vous sûr que le fichier Excel que vous avez joint est le bon ?Le classeur contient des fichiers contenant des informations sur les réunions internes.
Re : Valeurs temporelles en xls ou xlsx, csv et JMPVeuillez ignorer celui joint dans le message d'origine et l'utiliser comme exemple. Merci de le saisir.
Re : Valeurs temporelles en xls ou xlsx, csv et JMPJ'ai ouvert le fichier Excel directement dans JMP, j'ai utilisé l'assistant pour indiquer que l'en-tête des données se trouvait sur la ligne 6 et les données commençaient sur la ligne 7.Il a généré la JSL suivante
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 )
)
)
)
Les champs Date et Heure sont lus comme des valeurs JMP de date et d'heure correctes.Alors tout ce que j'avais à faire était de courir
Names Default To Here( 1 );
dt = Current Data Table();
For Each Row( :Date = :Date + :time );
Importer plusieurs fichiers ne semble pas pouvoir gérer les décalages de ligne pour lire correctement les en-têtes de la ligne 6 et les données commençant à la ligne 7 ;
Je vous suggère de créer votre propre boucle JSL pour lire chacun des fichiers à l'aide du code d'entrée ci-dessus.
Re : Valeurs temporelles en xls ou xlsx, csv et JMPC'est très intéressé. J'ai ouvert avec l'assistant mais le script de la source est différent du vôtre.
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( "-" )
)
)
Et si je change le format de mon heure en « meilleur », des valeurs négatives s'affichent. Je l'ai joint ici.