배열 수식이나 VBA 없이 두 열에서 고유 값 목록을 추출합니다.

배열 수식이나 VBA 없이 두 열에서 고유 값 목록을 추출합니다.

A와 B라는 두 개의 데이터 열이 있습니다. 최종 목록에 고유한 값만 포함되도록 이 열을 병합하고 싶습니다. 현재 저는 다음의 배열 수식을 사용하고 있습니다.https://www.get-digital-help.com/2009/06/16/extract-an-unique-distinct-list-from-two-columns-using-excel-2007-array-formula/:

{=IFERROR(IFERROR(INDEX($A$2:$A$20, MATCH(0, COUNTIF($C$1:C1, $A$2:$A$20), 0)), INDEX($B$2:$B$7, MATCH(0, COUNTIF($C$1:C1, $B$2:$B$7), 0))), "")} 

이것이 훌륭하게 작동하는 동안 배열 수식은 이미 형편없는 PC의 속도를 크게 저하시키므로 가능하다면 피하고 싶습니다. 또한 여러 가지 이유로 VBA를 사용할 수 없으므로 그것도 옵션이 아닙니다.

이를 수행할 수 있는 방법이 있습니까?

답변1

글쎄요, 지금은 효과가 있을 것 같은 방법을 찾았지만 확실히 별로 좋지는 않습니다.

A열에는 총 200개의 데이터 세트가 있습니다.

B열에는 두 번째 데이터 세트(예: 175개 값)가 있습니다.

C열은 B열의 값이 A열에 있는지 확인합니다.

 =IF(COUNTIF($A$2:$A$750,B2)>0,"Match","No Match")

E 열에는 A 열의 데이터 집합 끝을 기준으로 현재 위치를 추적하는 개수가 있습니다.

=IF(A2=0,MAX($E$1:E1)+1,"")

F열에는 C열이 고유한 값을 나타낼 때마다 증가하는 개수가 있습니다.

=IF(C2="No Match",MAX($F$1:F1)+1,"")

G열은 두 데이터 세트가 결합되는 곳입니다. 먼저 A의 값을 나열합니다. 목록 끝에 도달하여 0을 찾기 시작하면 E 열에 생성된 인덱스를 사용하여 B의 첫 번째 고유 값을 찾고 최종 값에 도달할 때까지 증가합니다.

=IF(A2=0,IF(E2>MAX(F:F),"",INDEX(B:B,MATCH(E2,F:F))),A2)

답변2

고유하고 고유한 값을 추출하는 방법에 대한 좋은 논의가 있습니다.이 Excel 튜토리얼 웹사이트.

귀하의 질문에 대한 대답은 '예'입니다. 각 부분에 추가 INDEX()를 사용하면 됩니다. 수정 사항은 다음과 같습니다.

=IFERROR(INDEX($A$2:$A$20,MATCH(0,INDEX(COUNTIF($C$1:C1,$A$2:$A$20),0),0)),INDEX($B$2:$B$7,MATCH(0,INDEX(COUNTIF($C$1:C1,$B$2:$B$7),0),0)))

가장 바깥쪽 IFERROR()를 생략했습니다. 도움이 되었기를 바랍니다.

관련 정보