두 세트의 교차점을 얻는 방법


16

스프레드 시트에 두 개의 목록 (독특한 세트)이 있고 그 둘의 교차점을 얻고 싶습니다.

이 작업을 수행하는 쉬운 방법이 있습니까?

다음은 달성하고자하는 예입니다.

목록 1 목록 2 예상 결과

 1 전자
 b 2 f
 ce      
 d 4      
 ef      
 f 6      

Google 스프레드 시트 예


문서를 공유하고 예상 결과를 조금 설명해 주시겠습니까?
Jacob Jan Tuinstra

답변:


20

GAS로 이동할 필요가 없으며 표준 스프레드 시트 기능이이를 쉽게 처리합니다.

예제 에서 다음을 셀에 붙여 넣으십시오.

=iferror(filter($A$2:$A, match($A$2:$A, B2:$B , false)), "no match")

매치 기능은 일치하는 항목이 발견되는 경우를 제외하고 오류의 전체 두 범위의 카티 제품을 생성합니다. 일치하는 것이 발견 되면 인덱스를 두 번째 범위로 리턴합니다 .

필터 기능은 멀리 모든 쓰레기와 만 반환 제대로 인덱스 값을 던졌습니다.

IFERROR는 전혀 일치가없는 경우 단정 한 결과를 얻을 수 있습니다.

$ A $ 2 : $ A 관용구로 표시되는 범위는 임의의 길이 일 수 있습니다.


3

이 작은 스크립트는 공식으로 두 범위를 비교합니다.

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)

도구 메뉴, 스크립트 편집기를 통해 스크립트를 추가하십시오.


나는 평범한 오래된 공식을 환영합니다. 나는 그들을 즉시 생각할 수 있었다 .....
Jacob Jan Tuinstra

1
해야 / 수 있어야는 할 수 없었다 .......
야곱 월 Tuinstra

1
감사합니다, @Jacob! gDocs에서 수식을 사용해야 할 이유가 없었습니다.이 세상을 열어 주셔서 감사합니다!
NoamNelke

3

다음과 같이 두 범위 (범위 1에 속하지 않은 범위 1의 요소)를 빼는 방법을 찾는 경우 :

List 1  List 2  Expected result

 a       1        a
 b       2        b
 c       e        c
 d       4        d
 e       f      
 f       6    

여기 당신을위한 공식이 있습니다 :

=iferror(filter($A$2:$A, iserror(match($A$2:$A, B2:$B , false))), "no match")

0

이 작은 스크립트는 공식으로 두 범위를 비교합니다.

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의 값을 반환합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.