기존 테이블에 연결하기 위해 통합 문서 제목이 있는 Excel, 특정 워크시트를 가져오는 데 도움이 필요합니다.분석을 위해 데이터를 JMP로 전송하는 수많은 Excel 파일이 있습니다. 최근까지 저는 Excel 파일을 수동으로 열고 관련 정보를 JMP 테이블에 직접 복사하는 매우 중세적인 방식으로 이 작업을 수행해 왔습니다. 이것이 가능하지만 가져오기 기능(기존 데이터 테이블에 추가하기 위한 연결과 함께)이 효율성을 향상시키기 위한 훨씬 더 나은 장기적 솔루션이라고 믿습니다.
내 관련 정보는 각 통합 문서의 시트 4에 있으며 "주기"라는 라벨이 붙어 있습니다. JMP 테이블을 업데이트하려면 해당 통합 문서를 4~20개 정도 가져와야 합니다. 각 통합 문서에는 일반적으로 8자 길이의 문자열 제목이 있습니다. 이는 테스트 중인 개체에 대한 고유 식별자입니다.
내 질문은 다음과 같습니다. 가져올 때 생성된 테이블의 이름을 바꾸는 것이 가능합니까? 예를 들어 지금 8개의 파일을 가져오면 JMP에서 생성된 테이블은 "cycle" "cycle 2", "cycle 3" 등입니다. .) 원본 Excel 통합 문서의 제목이 되도록 하시겠습니까(이 예에서는 "통합 문서 1", "통합 문서 2", "통합 문서 3" 등이 됨)?
다음 질문은 연결에 관한 것입니다. 특정 셀(예: 가져올 때 통합 문서 제목을 특정 열에 복사하는 스크립트에 의해 생성된 셀)을 분석할 수 있는 스크립트를 작성한 다음 해당 셀 내의 값을 사용하여 추가할 수 있습니까? 나머지 열의 정보를 기존 JMP 테이블에 추가합니까?
명확히 하기 위해, 이 경우 "A71320"이라는 라벨이 붙은 개체를 테스트하고 있다고 가정해 보겠습니다. 이 테스트 개체에 대한 모든 관련 데이터를 편집한 "A71320"이라는 JMP 데이터 테이블이 있습니다. 각각의 새로운 테스트는 "A71320"이라는 레이블이 붙은 Excel 파일을 생성합니다. 귀하의 스크립트를 사용하여 이 파일을 가져오고 싶습니다. 제가 올바르게 이해했다면 시트 4 "cycle"의 모든 데이터를 복사하고 "cycle"이라는 라벨이 붙은 새 JMP 테이블을 생성한 다음 이 새 테이블 내에서 1개의 채워진 셀 "A71320"이 있는 새 열을 생성합니다. . 그런 다음 이 셀 "A71320"을 보고 JMP 내에서 "A71320"이라는 기존 테이블을 인식하고 제목 셀을 제외한 모든 정보를 "cycle"에서 "A71320"까지 추가하는 스크립트를 실행하고 싶습니다. 이것이 가능한가?
시간을 내어 이 질문을 읽어주셔서 진심으로 감사드립니다.
영양
대량 맞춤화윈도우Re: 기존 테이블에 연결하기 위해 통합 문서 제목이 있는 Excel, 특정 워크시트를 가져오는 데 도움이 필요합니다.이것은 어려운 작업이 아닌 것 같습니다.... 그러나 특정 세부 사항이 너무 모호하여 귀하의 요구를 충족시키는 스크립트를 작성하려고 시도하지 않습니다.입력 Excel 통합 문서 및 최종 데이터 테이블의 샘플은 스크립트 개발을 안내하는 데 정말 도움이 됩니다.
Re: 기존 테이블에 연결하기 위해 통합 문서 제목이 있는 Excel, 특정 워크시트를 가져오는 데 도움이 필요합니다.안녕 @txnelson ,
나는 당신을 듣고! 첨부를 참조하시기 바랍니다. 위에서 설명한 것처럼 "새" A71322.xls 파일을 자주 생성합니다. 파일의 각 인스턴스는 고유하며(저장/구분을 위한 파일 시스템 구조가 있음) 각각은 .jmp 테이블에 설명된 "실행"에 해당합니다. 나는 보통 엑셀 파일을 수동으로 연 다음 "주기" 워크시트의 열 머리글 아래에 있는 모든 데이터를 복사한 다음 "주기 ID" 열의 마지막 항목 아래에 있는 .jmp 테이블에 붙여넣습니다. "총 주기 수" 및 "실행"에 대한 공식은 데이터 테이블에 올바른 항목을 생성합니다.
지금까지 Excel 책, 순환 시트만 가져온 다음 기본 연결 기능을 사용하여 위의 내용을 재현할 수 있었습니다. 그러나 현재 속도가 느리고 시트 이름만 가져오기 때문에(예를 들어 4개의 통합 문서를 가져오면 "주기" "주기 1" "주기 2" 및 "주기 3"으로 이어짐) 때때로 혼란스러울 수 있습니다. 내가 한 것처럼 수동으로 계속하는 것이 더 빠릅니다.
그러나 내 데이터 세트는 계속해서 증가하고 있으므로 스크립팅 솔루션을 찾고 있습니다. 저는 여러 배터리(예: A71321, A71311 등)에 대한 테스트를 수행하며 귀하가 제공한 솔루션을 조정할 수 있을 것이라고 확신합니다.
한 가지 더 주목해야 할 점은 셀 제목이 도움이 되는 경우 시트 "테스트", 셀 I-6에서 찾을 수 있다는 것입니다(그러나 이것은 내 시나리오에서 통합 문서의 제목을 가져올 수 있는 것만큼 유연하지 않습니다. ).
다시 한 번, 제 요청을 읽어주신 데 대한 인내심과 향후 답변에 감사드립니다. 더 많은 정보가 필요하시면 제가 답변해 드리겠습니다.
문안 인사,
영양
Re: 기존 테이블에 연결하기 위해 통합 문서 제목이 있는 Excel, 특정 워크시트를 가져오는 데 도움이 필요합니다.다음은 작업을 완료하기 위해 자신의 스크립트를 작성하는 좋은 시작을 제공하는 스크립트입니다.제공된 스크립트를 공부하여 작동 방식을 이해했는지 확인하십시오.
Names Default To Here( 1 );
// Set the object in question
object = "A71322";
// Get a list of input xls files to proces
// I am using the method where all files to be processed are moved into a single directory
dir = "C:\users\xxxx\input files\";
theFiles = Files In Directory( dir );
// Create the start of the final data table
dt = New Table( "Combined",
New Column( "Run",
formula(
If(
Row() == 1, 1,
:Cycle ID == 1 & Lag( :Cycle ID ) != 1, Lag( :Run ) + 1,
Lag( :Run )
)
)
),
New Column( "Total Cycle Number", formula( Row() ) )
);
// Loop through all of the file names and select only object in question files
For( i = 1, i <= N Items( theFiles ), i++,
If( Contains( theFiles[i], object ) == 1,
dtCycle = Open(
Char( dir ) || theFiles[i],
Worksheets( "cycle" ),
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( 1 ),
Data Starts on Row( 2 ),
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( "-" )
)
);
dt = dt << concatenate( dtCycle, Append to first table( 1 ) );
// Clean up
Close( dtCycle, nosave );
)
);