일부 열을 기준으로 중복 행을 제거하는 방법


11

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

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

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


이전 및 원하는 이후로 스크린 샷을 추가 할 수 있습니까? 나는 당신이 무엇을 필요로 하는지를 이해하려고 애 쓰고 있습니다 (죄송합니다)
Dave

따라서 열 A, C, D, E, F에 중복 값이 ​​있으면 전체 행이 삭제되어 중복의 첫 번째 인스턴스가 유지됩니까? A1이 A2와 일치하지만 C2가 C3과 일치하면 행 2가 삭제됩니까?
Raystafarian

답변:


18

Excel 2013에서

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

끝난


아니요, 다른 행과 비슷한 행을 찾습니다. 나는 또한 이것을 생각했지만 다른 질문에 대한 해결책입니다 :)
Garrulinae

@Garrulinae 무슨 말인지, 어떻게 작동하지 않는지 설명 할 수 있습니까? OP의 질문에 대한 정답으로 보입니다.
TheCrazyProgrammer

@TheCrazyProgrammer-2 년 후에이 문제를 살펴보면 OP의 질문 " ACDEF 열이 동일한 경우 행을 제거하고 싶습니다 "는 두 가지 방법으로 해석 될 수 있음을 알 수 있습니다. 나는 이 열들이이 행 내에서 서로 동일 하다면 의미했다 . 이 대답은 이 행 의 열 값 이 다른 행과 동일한 지를 의미한다고 가정합니다 . 뒤늦은 견해에서,이 가정은 특히 정답으로 표시 되었기 때문에 올바른 것으로 보입니다.
Garrulinae

@Garrulinae 잡았다. 이제 나는 당신의 대답을보고 이해했습니다. 참고로, OP (및 나)에 필요한 기능이 Excel에서 간단한 버튼으로 존재한다는 것에 놀랐지 만 인터넷 검색은 복잡한 작업을 수행하는 많은 기사를 제공하므로 잠시 동안이 대답을 의심하게 만들었습니다.
TheCrazyProgrammer

@ TheCrazyProgrammer, 나도 참고 사항이 있습니다-나는 단지이 답변을 게시 한 것이 OP라는 것을 깨달았습니다! 분명히 정답이지만 질문이 더 명확하지 않은 것은 부끄러운 일입니다.
Garrulinae

1

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

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


1

이 공식을 각 행에 추가하십시오 (예 : 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'라는 행에 대한 필터를 작성하고 삭제하십시오.


0

@ 가루 리나

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

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


2
나는 당신이 말하는 것을 완전히 이해하지 못합니다. 대신에 설명 당신이 무슨 짓을했는지, 당신은 할 수 있습니다 보여 우리는 무엇을 사용 식 (들), 그리고 몇 가지 예제 데이터를 표시하고, 그 데이터에 대한 방법 응답 작품을 보여?
Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.