태그 보관물: deduplication

deduplication

일부 열을 기준으로 중복 행을 제거하는 방법 동일한 경우 행을 제거하고

중복 행이 포함 된 Excel 시트가 있습니다.

ACDEF 열이 동일한 경우 행을 제거하고 싶습니다 (중복을 계산하는 동안 B를 무시하고 행을 제거하는 동안 제거하십시오)

현재는 비교 및 ​​삭제 중에 B를 무시합니다.



답변

Excel 2013에서

  1. 모든 데이터를 선택하십시오
  2. 데이터 탭-> 중복 제거를 선택하십시오.
  3. 데이터에 열 헤더가있는 경우 ‘내 열에 헤더가 있습니다’를 확인하십시오.
  4. 비교에 사용하지 않으려는 모든 열을 선택 취소하십시오.
  5. OK를 누릅니다

끝난


답변

행 1과 2가 올바르게 이해되면 A1 = A2, C1 = C2, D1 = D2, E1 = E2 및 F1 = F2 인 경우에만 행 2를 삭제하려고합니다.

이것이 내가 생각해 낸 것입니다. 아마도 더 짧을 수도 있지만 트릭을 수행합니다.

Sub DeleteDuplicate()
Dim current As String
ActiveSheet.Range("A1").Activate
Do While ActiveCell.Value <> ""
    current = ActiveCell.Address
    ActiveCell.Offset(1, 0).Activate
    Do While ActiveCell.Value <> ""
        If ((ActiveSheet.Range(current).Value = ActiveCell.Value) And (ActiveSheet.Range(current).Offset(0, 2).Value = ActiveCell.Offset(0, 2).Value) And (ActiveSheet.Range(current).Offset(0, 3).Value = ActiveCell.Offset(0, 3).Value) And (ActiveSheet.Range(current).Offset(0, 4).Value = ActiveCell.Offset(0, 4).Value) And (ActiveSheet.Range(current).Offset(0, 5).Value = ActiveCell.Offset(0, 5).Value)) Then
            ActiveSheet.Rows(ActiveCell.Row).Delete
        Else
        ActiveCell.Offset(1, 0).Activate
        End If
    Loop
    ActiveSheet.Range(current).Offset(1, 0).Activate
Loop
End Sub

이 작업은 ActiveCell을 평가중인 행에 대한 포인터로 사용하여 나머지 모든 행을 반복하고 “원래”행의 셀을 현재 변수에 저장합니다. 루프가 종료되면 전류 아래의 셀 이 활성화되고 내부 평가 루프가 다시 시작됩니다.

어딘가에 엉망이되면 주저하지 말고 알려주십시오. 🙂


답변

이 공식을 각 행에 추가하십시오 (예 : G 열에서 :

=IF(AND(A2=C2,A2=D2,A2=E2,A2=F2),"DELETE ME","")

결과는 다음과 같습니다.

A   B   C   D   D   F   G
-   -   -   -   -   -   -
x   o   x   x   x   x   DELETE ME
x   x   x   x   x   o
x   x   x   x   x   x   DELETE ME
x   o   o   x   x   x

그런 다음 G 열에 ‘DELETE ME’라는 행에 대한 필터를 작성하고 삭제하십시오.


답변

@ 가루 리나

나는 당신의 아이디어를 영감으로 사용했습니다. 나는 많은 행을 가지고 있었고 원하는 것은 열의 중복 값을 포함하는 행을 삭제하는 것이 었습니다. 해당 열에 대해 중복 제거를 사용하면 전체 행이 아닌 해당 열의 데이터 만 제거됩니다. 전체 테이블에서 두 번째와 세 번째 행을 모두 삭제하고 싶었습니다. 그래서 내가 한 것은 새 열을 만들고 첫 번째 행의 값을 비워 두어 두 번째 및 세 번째 행에서 나를 삭제합니다. 그런 다음 특정 열의 처음 세 행 (전체 행 아님)의 값만 복사하여 테이블의 전체 열에 붙여 넣습니다. 이제 전체 열의 두 번째와 세 번째 행마다 “삭제”가있었습니다. 그런 다음 해당 열의 값을 정렬하고 delete me가 포함 된 모든 행을 삭제해야합니다. 두 번째, 세 번째 및 네 번째 또는 두 번째, 세 번째, 네 번째 및 다섯 번째 등마다 삭제하려는 경우 동일한 솔루션을 사용할 수 있습니다 …

그것이 누군가를 돕기를 바랍니다 ….


답변