스프레드 시트에 두 개의 목록 (독특한 세트)이 있고 그 둘의 교차점을 얻고 싶습니다.
이 작업을 수행하는 쉬운 방법이 있습니까?
다음은 달성하고자하는 예입니다.
목록 1 목록 2 예상 결과 1 전자 b 2 f ce d 4 ef f 6
스프레드 시트에 두 개의 목록 (독특한 세트)이 있고 그 둘의 교차점을 얻고 싶습니다.
이 작업을 수행하는 쉬운 방법이 있습니까?
다음은 달성하고자하는 예입니다.
목록 1 목록 2 예상 결과 1 전자 b 2 f ce d 4 ef f 6
답변:
GAS로 이동할 필요가 없으며 표준 스프레드 시트 기능이이를 쉽게 처리합니다.
예제 에서 다음을 셀에 붙여 넣으십시오.
=iferror(filter($A$2:$A, match($A$2:$A, B2:$B , false)), "no match")
매치 기능은 일치하는 항목이 발견되는 경우를 제외하고 오류의 전체 두 범위의 카티 제품을 생성합니다. 일치하는 것이 발견 되면 인덱스를 두 번째 범위로 리턴합니다 .
필터 기능은 멀리 모든 쓰레기와 만 반환 제대로 인덱스 값을 던졌습니다.
IFERROR는 전혀 일치가없는 경우 단정 한 결과를 얻을 수 있습니다.
$ A $ 2 : $ A 관용구로 표시되는 범위는 임의의 길이 일 수 있습니다.
이 작은 스크립트는 공식으로 두 범위를 비교합니다.
function COMPARE(array1, array2) {
var array = [];
for(i=0; i<array1.length; i++) {
for(j=0; j<array2.length; j++) {
if(array1[i][0] == array2[j][0]) {
// the extra square brackets will make it a 2D array,
// aligning it vertically
array.push([array1[i][0]]);
}
}
}
return array;
}
시트에서 D2 셀에 다음 공식을 추가 할 수 있습니다.
=COMPARE(A2:A7,B2:B7)
도구 메뉴, 스크립트 편집기를 통해 스크립트를 추가하십시오.
이 작은 스크립트는 공식으로 두 범위를 비교합니다.
function intersect(array1, array2) {
var array = [];
for(i=0; i<array1.length; i++) {
for(j=0; j<array2.length; j++) {
if(array1[i][0] == array2[j][0]) {
// the extra square brackets will make it a 2D array,
// aligning it vertically
array.push([array1[i][0]]);
}
}
}
return array;
}
특별한:
function extersect(array1, array2) {
var array = [];
var tmp = true;
for(i=0; i<array1.length; i++) {
for(j=0; j<array2.length; j++) {
if(array1[i][0] == array2[j][0]) {
// the extra square brackets will make it a 2D array,
// aligning it vertically
tmp = false;
}
}
if(tmp == true)
{
array.push([array1[i][0]]);
}
tmp = true;
}
return array;
}
시트에서 D2 셀에 다음 공식을 추가 할 수 있습니다.
=intersect(A2:A7,B2:B7)
도구 메뉴, 스크립트 편집기를 통해 스크립트를 추가하십시오.
= intersect (A2 : A7, B2 : B7)은 두 배열 array1, array2에있는 결과를 반환합니다.
= extersect (A2 : A7, B2 : B7)은 범위 B2 : B7에없는 array1의 값을 반환합니다.