중복 열 삭제 (Microsoft Excel)
Dror에는 상당한 양의 데이터가 포함 된 워크 시트가 있습니다. 한 열의 데이터가 다른 열의 데이터와 정확히 동일 할 수 있으므로 워크 시트 내에서 중복 된 열을 쉽게 삭제할 수있는 방법이 있는지 궁금합니다.
물론 첫 번째 단계는 두 열이 동일한 지 여부를 파악하는 것입니다. 이것은 다음과 같은 배열 수식을 사용하여 쉽게 결정할 수 있습니다.
=AND(A1:A100=B1:B100)
(배열 수식은 Shift + Ctrl + Enter를 사용하여 입력됩니다.)
이 수식은 A 열과 B 열의 처음 100 개 행에있는 모든 값을 비교합니다. 모두 같으면 수식은 TRUE를 반환합니다. 일치하지 않는 셀이 있으면 수식이 FALSE를 반환합니다. 결과가 TRUE이면 동일하므로 열 중 하나를 삭제할 수 있습니다.
좀 더 자동적 인 것을 원하면 중복 열이 삭제되는 것을 의미하는 경우 매크로를 사용해야합니다. 다음 단계에서는 워크 시트의 모든 열을 살펴보고 맨 오른쪽 열부터 시작하여 모든 열을 비교합니다. 워크 시트의 순서에 관계없이 동일한 항목이 있으면 매크로는 중복 열을 삭제할 것인지 묻습니다.
Sub DeleteDuplicateColumns() Dim rngData As Range Dim arr1, arr2 Dim i As Integer, j As Integer, n As Integer On Error Resume Next Set rngData = ActiveSheet.UsedRange If rngData Is Nothing Then Exit Sub n = rngData.Columns.Count For i = n To 2 Step -1 For j = i - 1 To 1 Step -1 If WorksheetFunction.CountA(rngData.Columns(i)) <> 0 And _ WorksheetFunction.CountA(rngData.Columns(j)) <> 0 Then arr1 = rngData.Columns(i) arr2 = rngData.Columns(j) If AreEqualArr(arr1, arr2) Then With rngData.Columns(j) 'mark column to be deleted .Copy If MsgBox("Delete marked column?", vbYesNo) _ = vbYes Then rngData.Columns(j).Delete Else 'remove mark Application.CutCopyMode = False End If End With End If End If Next j Next i End Sub
Function AreEqualArr(arr1, arr2) As Boolean Dim i As Long, n As Long AreEqualArr = False For n = LBound(arr1) To UBound(arr1) If arr1(n, 1) <> arr2(n, 1) Then Exit Function End If Next n AreEqualArr = True End Function
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (5674)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.
link : / excel-Deleting_Duplicate_Columns [중복 열 삭제]
.