Valeurs temporelles en 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 (l'exemple est joint ici sous forme de fichier Excel), la colonne de temps m'intéresse 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, je me suis heurté à plusieurs 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 de temps sont correctes (comme indiqué sur le fichier Excel d'origine).
2. Lorsque je change le format des fichiers Excel en CSV, les valeurs de temps sont correctes une fois importées dans JMP. Pour les fichiers 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 quelques choses comme solutions 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 remettez 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(
Char( Format( :Date, "mm/jj/aaaa" ) ) || " " ||
Car( Heure( :Heure, 24 ) ) || ":" || Car( Minute( :Heure ) ) ||
":" || Car( 60 + Seconde( :Heure ) ),
"jj/mm/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 ?
Accès aux donnéesRe : Valeurs de temps en xls ou xlsx, csv et JMPSi vous voyez des valeurs négatives pour une durée ou une valeur de date importée en tant que double dans JMP et reconvertie en heure, cela peut être dû au fait qu'Excel et JMP utilisent des dates de référence différentes pour leur état des valeurs de date/heure.Excel utilise 1/1/1900 et JMP utilise 1/1/1904.Il y a quelques informations sur un post de la communauté ici :
https://community.jmp.com/t5/JMPer-Cable/Using-dates-times-datetimes-and-durations-in-JMP/ba-p/68689
Brian Corcoran
Développement JMP
Re : Valeurs de temps en xls ou xlsx, csv et JMPJ'ai reproduit vos découvertes.JMP 13-16 lisent tous dans les valeurs Excel avec les mêmes valeurs négatives.J'ai regardé dans la feuille de calcul Excel et je n'ai trouvé aucune raison pour les valeurs négatives, mais encore une fois, je ne suis pas un expert Excel.
Peut-être qu'un autre membre a une idée ?
Re : Valeurs de temps en xls ou xlsx, csv et JMPEn ce qui concerne l'importation multiple d'Excel, j'utilise un script partagé par quelqu'un il y a quelque temps. Attaché ici.
Re : Valeurs de temps 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 temps en "meilleur", des valeurs négatives s'affichent. Je l'ai joint ici.
Re : Valeurs de temps 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 de données était sur la ligne 6 et que les données commençaient sur la ligne 7.Il a généré le JSL suivant
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 de date et d'heure sont lus comme des valeurs JMP de date et d'heure correctes.Ensuite, tout ce que j'avais à faire était de courir
Names Default To Here( 1 );
dt = Current Data Table();
For Each Row( :Date = :Date + :time );
L'importation de plusieurs fichiers ne semble pas être en mesure de 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 à lire dans chacun des fichiers en utilisant le code d'entrée ci-dessus.
Re : Valeurs de temps 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 de temps 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 de temps 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 remettez 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(
Char( Format( :Date, "mm/jj/aaaa" ) ) || " " ||
Car( Heure( :Heure, 24 ) ) || ":" || Car( Minute( :Heure ) ) ||
":" || Car( 60 + Seconde( :Heure ) ),
"jj/mm/aaaa HH:mm:ss"
)