xls 또는 xlsx, csv 및 JMP 형식의 시간 값안녕하세요, Excel의 시간 값에 이상한 문제가 있습니다. 몇 가지 데이터가 있습니다(예는 여기에 Excel 파일로 첨부되어 있음). 시간 열은 저에게 관심이 있으며 날짜 및 시간 열을 함께 추가하여 날짜 시간 열을 만듭니다. 저는 데이터 분석을 위해 JMP를 사용하기 때문에 엑셀 파일을 가져오고 있습니다.
그러나 여러 가지 이상한 점에 부딪혔습니다.
1. 고객이 데이터를 분석하기 위해 여러 파일을 가져올 때 시간 값(초 단위)이 음수이고 형식을 mm:dd:yyyy hh:mm로 변경한 1899년부터 시작합니다. :봄 여름 시즌. 파일을 CSV로 다시 저장한 다음 JMP로 다시 열면 시간 값이 정확합니다(원본 Excel 파일에 나열된 대로).
2. Excel 파일의 형식을 CSV로 변경하면 JMP로 가져온 시간 값이 정확합니다. xls 또는 xlsx 파일의 경우 CSV로 변경해야 합니다. 왜 그런 겁니까?
아래는 진행 상황과 원하는 날짜-시간 형식을 생성하는 두 가지 솔루션에 어떻게 도달했는지에 대한 내 생각을 기록한 것입니다.
"끔찍한 공식" 칼럼에서 볼 수 있듯이 해결 방법으로 몇 가지 작업을 수행해야 했습니다.
- 날짜와 시간을 문자열로 변환한 다음 두 열을 연결합니다. 속성을 복사하고 새 열에 붙여넣은 다음 형식을 다시 숫자로 변경합니다. 그러나 이것이 항상 작동하는 것은 아닙니다!
- Second() 함수는 음수 값을 추출했습니다. 흥미로운 점은 Second()뿐입니다.공식은 아래에 있습니다
- 정보(
Char( 형식( :날짜, "mm/dd/yyyy" ) ) || " " ||
Char( Hour( :시간, 24 ) ) || ":" || Char( 분( :시간 ) ) ||
":" || Char( 60 + 초( :시간 ) ),
"mm/dd/yyyy HH:mm:ss"
)
그러나 두 솔루션 모두 약간 손이 많이 가는 것 같습니다(JMP로 가져온 엑셀을 CSV로 저장한 다음 JMP로 다시 여는 것 외에). 시간 값을 더 빨리 수정하는 다른 방법이 있습니까? 자동화? Excel 파일을 JMP로 가져오는 동안?
데이터 접근Re: xls 또는 xlsx, csv 및 JMP 형식의 시간 값기간에 대해 일부 음수 값이 표시되거나 JMP에 double로 가져와 시간으로 다시 변환된 날짜 값이 표시되는 경우 Excel과 JMP가 날짜/시간 값 상태에 서로 다른 참조 날짜를 사용하기 때문일 수 있습니다.Excel은 1900년 1월 1일을 사용하고 JMP는 1904년 1월 1일을 사용합니다.커뮤니티 게시물에 대한 정보는 다음과 같습니다.
https://community.jmp.com/t5/JMPer-Cable/Using-dates-times-datetimes-and-durations-in-JMP/ba-p/68689
브라이언 코코란
JMP 개발
Re: xls 또는 xlsx, csv 및 JMP 형식의 시간 값나는 당신의 발견을 복제했습니다.JMP 13-16은 모두 동일한 음수 값을 가진 Excel 값을 읽습니다.Excel 스프레드시트를 살펴보았지만 음수 값에 대한 이유를 찾을 수 없었지만 다시 Excel 전문가가 아닙니다.
다른 회원에게 아이디어가 있습니까?
Re: xls 또는 xlsx, csv 및 JMP 형식의 시간 값여러 Excel 가져오기의 경우 얼마 전에 누군가가 공유한 스크립트를 사용하고 있습니다. 여기에 첨부합니다.
Re: 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( "-" )
)
)
그리고 내 시간의 형식을 '최고'로 변경하면 음수 값으로 표시됩니다. 여기에 첨부했습니다.
Re: xls 또는 xlsx, csv 및 JMP 형식의 시간 값Excel 파일을 JMP로 직접 열고 마법사를 사용하여 데이터 제목이 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 루프를 만드는 것이 좋습니다.
Re: xls 또는 xlsx, csv 및 JMP 형식의 시간 값원래 게시물에 첨부된 것은 무시하고 예시로 사용하세요. 잡아주셔서 감사합니다.
Re: xls 또는 xlsx, csv 및 JMP 형식의 시간 값첨부한 Excel 파일이 올바른 파일입니까?통합 문서에는 내부 회의에 대한 정보가 포함된 파일이 포함되어 있습니다.
Re: xls 또는 xlsx, csv 및 JMP 형식의 시간 값보정:
아래는 진행 상황과 원하는 날짜-시간 형식을 생성하는 두 가지 솔루션에 어떻게 도달했는지에 대한 내 생각을 기록한 것입니다.
1. 날짜와 시간을 문자열로 변환한 다음 두 열을 연결합니다. 속성을 복사하고 새 열에 붙여넣은 다음 형식을 다시 숫자로 변경합니다. 그러나 이것이 항상 작동하는 것은 아닙니다!
2. Second() 함수는 음수 값을 추출하고...Second()만 추출했는데, 이는 흥미로웠습니다.공식은 아래에 있습니다
정보(
Char( 형식( :날짜, "mm/dd/yyyy" ) ) || " " ||
Char( Hour( :시간, 24 ) ) || ":" || Char( 분( :시간 ) ) ||
":" || Char( 60 + 초( :시간 ) ),
"mm/dd/yyyy HH:mm:ss"
)