안녕,
이름을 기준으로 데이터 테이블을 연결하고 싶습니다.
예를 들어 6개의 데이터 테이블이 있고 그 이름은 M1a M1b M2a M2b M3a M3b와 같습니다. 그래서 모든 M1 장치를 함께 결합하고 싶습니다. 그러나 M1 부분은 이름에 따라 다르므로 이름을 얻은 다음 이름의 일부를 비교할 수 있는 스크립트가 필요합니다.
시작하는 데 도움을 주시면 매우 감사하겠습니다.
테이블이 이미 열려 있나요? 그렇지 않은 경우 동일한 폴더에 있고 폴더에 다른 파일이 있습니까?
<< 이름 가져오기 데이터 테이블의 이름을 가져오는 데 사용할 수 있습니다. 데이터 테이블 목록 가져오기() 공개 데이터 테이블 목록. 데이터 테이블 이름을 비교하는 데는 다양한 옵션이 있으며 어떤 옵션을 사용할지는 데이터 테이블 이름에 따라 다릅니다(Regex는 하나의 옵션입니다).
다음은 최종 스크립트를 구성하는 데 도움이 되는 스크립트입니다.예제에 사용할 몇 가지 샘플 테이블을 만든 다음 이를 찾아 이름의 처음 2개 문자와 일치시키고 마지막으로 연결합니다.
Names Default To Here( 1 );
// create sample data tables
For( i = 1, i <= 6, i++,
New Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ), New Column( "D" ) );
Data Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ) ) << add rows( 1 );
Column( Data Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ) ), 1 )[1] = i;
);
// Find all data tables that match Mx
concatTableList = {};
shortNameList = {};
For( i = 1, i <= N Table(), i++,
If( Starts With( Data Table( i ) << get name, "M" ),
Insert Into( concatTableList, Data Table( i ) << get name );
Insert Into( shortNameList, Substr( Data Table( i ) << get name, 1, 2 ) );
)
);
// Find the unique key values
theKeys = Associative Array( shortNameList ) << get keys;
// Create the concatenated tables
For Each( {key}, theKeys,
catList = {};
For Each( {tableName}, concatTableList,
If( Starts With( tableName, key ),
Insert Into( catList, tableName )
)
);
If( N Items( catList ) > 1,
dt = New Table( key );
For Each( {cat}, catList, dt << concatenate( Data Table( cat ), append to first table ) );
);
);또한 다중 파일 가져오기 사용을 고려할 수도 있습니다. 모든 테이블을 단일 테이블로 결합한 다음 소스 열을 사용하여 하위 집합으로 분리하거나(원하는 그룹의 소스 열을 기반으로 새 열 생성) 와일드카드 *(0개 이상의 문자 일치)를 사용하여 MFI를 여러 번 실행합니다. (정확히 한 문자와 일치) 및 ; (별도의 다른 파일 이름 패턴) MFI를 한 번 실행하여 모든 단일 그룹을 가져옵니다.

나는 이것이 모두 동일한 Excel 통합 문서에서 왔기 때문에 작동하지 않을 것이라고 생각합니다. 이 통합 문서를 열면 각 시트가 새로운 데이터 테이블이 됩니다. 이것이 작동하는 방법이 있습니까?
단일 Excel 파일인 경우 Excel 가져오기 마법사를 사용할 수 있습니다.

"워크시트 연결 및 열 일치 시도" 및 "연결 시 워크시트 이름으로 열 만들기"를 활성화합니다. JMP 테이블에 데이터가 있으면 그룹화 열을 만들고 필요에 따라 하위 집합을 만듭니다.