_ 수백만 개의 행을 가진 2 개의 데이터 열을 비교하고 두 열에서 고유 한 값을 추출하는 방법이 궁금한 경우이 기사를 읽어야합니다. VBA 코드를 사용하여 두 데이터 열을 비교하고 다음 두 열의 차이를 표시합니다 ._

질문 : A 및 B 열에 여러 값이 있습니다. 매크로가 두 열 모두에서 40k 개 이상의 데이터 행을 확인한 다음 각 열에서 고유 항목 목록을 다음 열로 추출하기를 원합니다. 열 C & D 각각. 이 예에서는 40 행의 샘플 데이터 만 사용합니다.

다음은 데이터 스냅 샷입니다.

img1

===

두 열 목록을 비교하려면 아래 단계에 따라 VB 편집기를 실행해야합니다.

개발자 탭을 클릭하십시오. 코드 그룹에서 Visual Basic을 선택하십시오

img2

  • 표준 모듈에 아래 코드 복사

Sub PullUniques()

Dim rngCell As Range

For Each rngCell In Range("A2:A40")

If WorksheetFunction.CountIf(Range("B2:B40"), rngCell) = 0 Then

Range("C" & Rows.Count).End(xlUp).Offset(1) = rngCell

End If

Next

For Each rngCell In Range("B2:B40")

If WorksheetFunction.CountIf(Range("A2:A40"), rngCell) = 0 Then

Range("D" & Rows.Count).End(xlUp).Offset(1) = rngCell

End If

Next

End Sub

img3

  • 위의 매크로는 모두 실행되도록 설정되었습니다. F5 키 (현재 Visual Basic Editor 화면에있는 경우)를 누르거나 바로 가기 키 “ALT + F8″을 사용할 수 있습니다. 매크로를 선택하고 실행 버튼을 클릭합니다

img4

  • 열 A 및 B의 고유 목록은 열 C 및 D에 자동으로 생성됩니다

img5

코드 설명 :

위의 코드에서 우리는 결과를 얻기 위해 For 루프와 함께 IF 함수를 사용할 것입니다.

Dim rngCell을 Range로 선언합니다. rngCell을 Range로 선언하는 목적은 샘플 범위 “A2 : A40″을 특정 이름, 즉 For Each rngCell In Range ( “A2 : A40”) 예제에서 “rngCell”로 할당하는 것입니다. If WorksheetFunction.CountIf (Range ( “B2 : B40”), rngCell) = 0 Then; 조건으로 “rngCell”의 각 셀을 확인합니다. 이 코드 줄은 COUNTIF VBA 함수를 사용하여 조건 범위 B2 : B40과 rngCell이 0 인 조건을 확인한 다음 C 열에 rngCell에 저장된 값이 저장됩니다. 열 D의 고유 값 결론 : 각 열에서 고유 한 텍스트 또는 값 목록을 가져올 수 있습니다. C 열의 헤더 이름 (결과-목록 1에는 있지만 목록 2에는 없음) 및 열 D (결과-목록 2에는 있지만 목록 1에는 없음). 비슷한 요구 사항이 있지만 열 수가 두 개 이상인 경우 결과를 얻기 위해 코드를 조정해야합니다.

image 29

블로그가 마음에 들면 Facebook에서 친구들과 공유하세요. 또한 Twitter와 Facebook에서 우리를 팔로우 할 수 있습니다.

우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 여러분을 위해 개선 할 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요