모든 사람은 텍스트 항목 목록에서 중복 항목을 삭제해야하는 경우가 있습니다. 워크 시트의 A 열에 텍스트 값이 있고 약 500 행에 대해 실행된다고 가정합니다. 목록에서 중복 항목을 삭제하려면 가장 쉬운 방법을 찾고있을 수 있습니다.

수동으로 데이터 필터링을 사용하여 고유 한 값을 확인할 수 있습니다.

열의 상단에 레이블이 있는지 확인한 다음 열에서 셀을 선택하십시오. 데이터 선택 | 필터 | 고급 필터 또는 Excel 2007의 경우 리본의 데이터 탭을 표시하고 정렬 및 필터 그룹에서 고급을 클릭합니다. 표시되는 대화 상자의 컨트롤을 사용하여 지정한 다른 위치에 고유 한 값을 복사하도록 지정합니다.

수식을 사용하여 목록에서 중복 항목을 수동으로 확인할 수도 있습니다. 열의 값을 정렬 한 다음 B2 셀에 다음 수식을 입력합니다.

=IF(A2=A1,"Duplicate","")

A 열에 해당 값이있는 B 열의 모든 셀에 수식을 복사합니다. B 열의 모든 값을 선택하고 Ctrl + C를 누릅니다. 선택하여 붙여 넣기 대화 상자를 사용하여 선택한 동일한 셀에 값만 붙여 넣습니다. 이제 수식을 결과로 변환했습니다. B 열의 내용에 따라 두 열을 정렬하면 모든 중복 행이 한 영역에 있습니다. 이 행을 삭제하면 고유 값 목록이 완성됩니다.

이러한 수동 접근 방식은 빠르고 쉽습니다.하지만 열에서 중복 값을 정기적으로 삭제해야하는 경우 매크로가 더 스타일이 될 수 있습니다. 다음 매크로는 이전 수동 방법과 마찬가지로 고급 데이터 필터링에 의존합니다.

Sub CreateUniqueList()

Dim rData As Range     Dim rTemp As Range

Set rData = Range(Range("a1"), Range("A65536").End(xlUp))

rData.EntireColumn.Insert     Set rTemp = rData.Offset(0, -1)

rData.AdvancedFilter _         Action:=xlFilterCopy, _         CopyToRange:=rTemp, _         Unique:=True

rTemp.EntireColumn.Copy _         rData.EntireColumn     Application.CutCopyMode = False     rTemp.EntireColumn.Delete     Set rData = Nothing     Set rTemp = Nothing End Sub

매크로는 임시 열을 만들고 고급 필터링을 사용하여 해당 열에 고유 한 값을 복사 한 다음 원래 데이터 열을 삭제합니다.

결과는 A 열의 고유 한 값입니다. 매크로가 Excel의 데이터 필터링 기능을 사용하지 않도록하려면 다음 매크로가 트릭을 수행합니다.

Sub DelDups()

Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim J As Integer, K As Integer

Application.ScreenUpdating = False     Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)



NumRows = rngSrc.Rows.Count     ThisRow = rngSrc.Row     ThatRow = ThisRow + NumRows - 1     ThisCol = rngSrc.Column

'Start wiping out duplicates     For J = ThisRow To (ThatRow - 1)

If Cells(J, ThisCol) > "" Then             For K = (J + 1) To ThatRow                 If Cells(J, ThisCol) = Cells(K, ThisCol) Then                     Cells(K, ThisCol) = ""

End If             Next K         End If     Next J

'Remove cells that are empty     For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = "" Then             Cells(J, ThisCol).Delete xlShiftUp         End If     Next J     Application.ScreenUpdating = True End Sub

매크로는 호출하기 전에 선택한 항목에서 작동합니다. 따라서 A2 : A974 범위에서 중복 셀을 제거해야하는 경우 해당 범위를 선택한 다음 매크로를 실행하면됩니다. 매크로가 완료되면 빈 셀과 마찬가지로 중복 셀이 제거됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2430)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Deleting_Duplicate_Text_Values ​​[중복 텍스트 값 삭제].