'다중조건 중복제거'에 해당되는 글 1건

728x90

[VBA] 중복데이터 색깔 표시, 중복제거, 정렬


자료를 분류할 때 중복데이터가 들어 있는 걸 쉽게 찾아서 검토한 다음에 제거하고 싶은 경우가 있습니다.

이럴 때는 중복데이터가 들어간 셀을 배경색을 넣어서 표시한 다음에 찾으면 쉽게 구별할 수가 있습니다.



육안으로 찾는다는 것은 엄청난 시간 낭비죠.

VBA 코드를 사용하지 않고 찾는 방법은 필터를 설정하고, 글자순으로 소팅하는 방법이 되겠죠.

하지만 이 또한 일일이 육안 확인을 해야 하는 번거로움이 예상됩니다.

아래 VBA 코드를 이용하면 쉽게 찾아낼 수 있습니다.

Sub 중복색깔표시()
    Dim rngC As Range
    Dim rngAll As Range
    Dim i As Integer
   
    Application.ScreenUpdating = False      '// 화면 업데이트 (일시)정지
    Set rngAll = Range([C2], Cells(Rows.Count, "C").End(3))
    rngAll.Interior.Color = xlNone  '// 적용된 색깔 삭제
   
    For Each rngC In rngAll
        If Application.CountIf(rngAll, rngC) <> 1 Then  '// 중복데이터 있는 경우
            rngC.Interior.ColorIndex = 40   '// 배경색 지정, 색상표는 http://link2me.tistory.com/260 참조
            i = i + 1
        End If
    Next rngC   
    Set rngAll = Nothing

    If i > 0 Then
        MsgBox "중복개수 " & i & "개 발생"
    Else
        MsgBox "중복없음"
    End If
End Sub


그럼 이제 실행된 결과를 한번 보겠습니다.


   


먼저 소분류 항목에 필터를 걸고, 오름차순이나 내림차순 정렬을 합니다.

그 다음에 색 기준 정렬을 합니다.



이제 중복데이터가 뭔지 눈에 잘 들어오네요.


데이터가 엄청나게 많은 것을 중복 데이터를 육안으로 확인하고 나서 지우고 싶다면 이걸 실행하면 됩니다.

그럼 이제 중복데이터를 편하게 지우는 방법을 더 알아보겠습니다.

위 그림은 중복제거를 할 때 대분류, 소분류 기준을 모두 고려하여 중복데이터를 제거해야 원하는 결과를 얻을 수 있겠네요.


Sub 중복데이터제거()
    [A1].SpecialCells(5).RemoveDuplicates Columns:=Array(2, 3), Header:=xlYes
   
    '// 2번째 열 기준으로 중복제거
    '[A1].SpecialCells(5).RemoveDuplicates Columns:=2, Header:=xlYes
   
    '// 3번째 열 기준으로 중복제거
    '[A1].SpecialCells(5).RemoveDuplicates Columns:=3, Header:=xlYes
End Sub


단 한줄로 중복데이터를 제거할 수 있습니다. array(2,3) 의 의미는 2번째열과 3번째열을 기준으로 하라.

Header:=xlYes 는 헤더가 있다. 헤더가 없을 경우에는 Header:=xlNO 로 한다.



이제 다시 색깔제거 VBA 코드를 사용하면 표시된 색깔이 없어질 것을 확인할 수 있습니다.



그럼 이제 정렬까지 하는 걸 알려줘야지....라고 하면

엑셀에서는



로 하면 됩니다.

그럼 VBA 코드로 한다면 ....

Sub 셀정렬()
    With Range("A1").CurrentRegion
        .Sort key1:=.Cells(1, 2), order1:=1, _
              key2:=.Cells(1, 3), order2:=1, _
              Header:=xlYes
    End With
End Sub


로 하면 됩니다.

order1:=1 에서 1은 오름차순, 2는 내림차순 을 의미하며, key는 최대 3개까지 지정할 수 있습니다.


duplicate_color.vbs


도움이 되셨다면 공감 꾸욱~~ 눌러주는 센스


블로그 이미지

Link2Me

,