데이터가 30,000 개가 넘는 스프레드 시트가 있는데 각각 38 개의 데이터 포인트가 있습니다. 복제 된 행이 있는지 확인하기 위해 각 행에 대해 14 개의 필드를 연결하고 데이터를 잘라 냈습니다. 349 자로 구성된 각 행의 키가 만들어졌습니다.응용 프로그램. 일치 오류 2015
편집 : 키의 복제는 14 개의 필드가 모두 동일 할 때 발생합니다. 시각적 인 검토에서, 나는 14 개의 모든 필드의 데이터가 정확히 동일한 200 개의 행 (2000 년 중)을 확인했습니다.
그런 다음 application.match를 사용하여 검색을 실행하여 키가 이미 생성되었는지 확인합니다. 중복이 없으면 application.match 함수가 제대로 작동합니다. 중복이있을 때 그러나, 반환
오류 2015
내가 함수가 # VALUE 반환 할 때이 것을 이해합니다. 즉치 창을 사용하여 값을 확인하면 값이 중복되고 스프레드 시트에 "= Xi = Yj"를 입력하면 같음을 알 수 있습니다 (예 : TRUE)
정확한 행 값을 알아야합니다. 프로젝트의 다음 부분에서 중복 값을 식별하고 올바른 행 값을 얻는 방법이 있다면 궁금한 점은 무엇입니까?
내가 가진 코드는 (여전히 의한 PoC)를 다음과 같습니다
While Cells(a, 1) <> vbNullString
If Cells(a, 36).Interior.Color = 5296274 Then
ElseIf Cells(a, 36) <> vbNullString Then
Else
Cells(a, 39) = Trim(Cells(a, 3) & Cells(a, 4) & Cells(a, 5) & Cells(a, 6) & Cells(a, 7) & Cells(a, 8) & Cells(a, 9) & Cells(a, 10) & _
Cells(a, 11) & Cells(a, 12) & Cells(a, 13) & Cells(a, 14) & Cells(a, 15) & Cells(a, 16) & _
Cells(a, 17) & Cells(a, 18) & Cells(a, 19))
Cells(a, 44) = Len(Cells(a, 39))
m = vbNullString
m = Application.Match(Cells(a, 39), Range(Cells(2, 39), Cells(a - 1, 39)), 0)
If m = vbNullString Then
Cells(a, 39).Select
Selection.Style = "Good"
Else
' Range(Cells(a - 1, 39), Cells(a, 39)).Select
' Selection.Style = "Bad"
End If
End If
a = a + 1
Wend
이 첫 번째 후 중복 키 또는에서만 발생의 모든 위치를 수집 :
코드는 지금처럼 보인다? 그리고 범위를 완전히 참조하십시오. 또는 With 문 안에 배치 한 다음 "."접두사를 붙이십시오. – QHarr
팁 :'Cells (a, 39) = Join (Application.Index (Cells (r, 3) .Resize (, 17) .Value, 0, 0), ";") – JohnyL
@QHarr - 확실하지 않음 질문의 두 번째 부분을 따르십시오. 첫 번째로, 나는 각각의 위치를 알아야한다. 후속 세트가 고유하지 않은 것으로 바뀌면 첫 번째 세트를 변경하는 것을 포함한다. – Clauric