xls 或 xlsx、csv 和 JMP 中的時間值大家好,我的 excel 中的時間值有一個奇怪的問題。 我有一些數據(示例作為 excel 文件附在此處),時間列對我很感興趣,我會將日期和時間列添加在一起以創建日期時間列。 為了分析數據,我使用 JMP,因此我正在導入 excel 文件。
然而,我遇到了一些奇怪的事情:
1.當我導入多個文件時(從客戶那里為他們分析他們的數據),時間值(以秒為單位)是負數,從1899年開始,當我將格式更改為mm:dd:yyyy hh:mm :ss。 當我再次將文件另存為 CSV,然後再次使用 JMP 打開時,時間值是正確的(如原始 excel 文件中所列)。
2.當我將excel文件的格式更改為CSV時,一旦導入JMP,時間值是正確的。 對於 xls 或 xlsx 文件,我需要將它們更改為 CSV。 這是為什麼?
以下是我對正在發生的事情以及我如何得出導致所需日期時間格式的兩種解決方案的想法的筆記。
正如您將在“可怕的公式”專欄中看到的那樣,我不得不做一些事情來解決:
- 將日期和時間轉換為字符串,然後連接兩列。 複製屬性,粘貼到新列中,然後將格式改回數字。 但這並不總是有效!
- Second() 函數提取負值……而且只有 Second(),這很有趣。公式如下
- 信息(
Char( 格式( :Date, "mm/dd/yyyy" ) ) || " " ||
Char( Hour( :Time, 24 ) ) || ":" ||字符(分鐘(:時間))||
":" || Char( 60 + Second( :Time ) ),
"mm/dd/yyyy HH:mm:ss"
)
但是,這兩種解決方案似乎都有些費力(除了將導入 JMP 的 excel 保存為 CSV,然後再次使用 JMP 打開)。 還有另一種方法可以更快地更正時間值嗎? 自動化?將 excel 文件導入 JMP 時?
分析數據表腳本編寫回复:xls 或 xlsx、csv 和 JMP 中的時間值更正:
以下是我對正在發生的事情以及我如何得出導致所需日期時間格式的兩種解決方案的想法的筆記。
1. 將日期和時間轉換為字符串,然後將兩列連接起來。 複製屬性,粘貼到新列中,然後將格式改回數字。 但這並不總是有效!
2. Second() 函數提取負值……而且只有 Second(),這很有趣。公式如下
信息(
Char( 格式( :Date, "mm/dd/yyyy" ) ) || " " ||
Char( Hour( :Time, 24 ) ) || ":" ||字符(分鐘(:時間))||
":" || Char( 60 + Second( :Time ) ),
"mm/dd/yyyy HH:mm:ss"
)
回复:xls 或 xlsx、csv 和 JMP 中的時間值您確定您附加的 Excel 文件是正確的嗎?該工作簿包含有關內部會議信息的文件。
回复:xls 或 xlsx、csv 和 JMP 中的時間值請忽略原始帖子中所附的那個,並以此為例。 謝謝你抓住那個。
回复:xls 或 xlsx、csv 和 JMP 中的時間值我直接在 JMP 中打開 Excel 文件,我使用嚮導指示數據標題在第 6 行,數據從第 7 行開始。它生成了以下 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 )
)
)
)
日期和時間字段都被讀入為正確的日期和時間 JMP 值。然後我所要做的就是跑
Names Default To Here( 1 );
dt = Current Data Table();
For Each Row( :Date = :Date + :time );
導入多個文件似乎無法處理行偏移以正確讀取第 6 行的標題和第 7 行的數據;
我建議您創建自己的 JSL 循環以使用上述輸入代碼讀取每個文件。
回复:xls 或 xlsx、csv 和 JMP 中的時間值這是非常感興趣的。 我使用嚮導打開,但源腳本與您的不同。
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( "-" )
)
)
如果我將時間格式更改為“最佳”,則會顯示負值。 我已將其附在此處。