2 개의 꼭지점 (서버) 간의 관계를 나타내는 2 열의 스프레드 시트가 있습니다. 불행히도 열이 너무 많아 항목 A, B 및 B, A가 있습니다. 중복 된 항목을 제거해야합니다. 누군가 제발 기능을 제공 할 수 있습니까?VBA는 방향성이없는 그래프를 만듭니다.
예 :
분리되는 출력 선호하지만 동일한 입력 항목을 수정하는 경우는 OK이다.
2 개의 꼭지점 (서버) 간의 관계를 나타내는 2 열의 스프레드 시트가 있습니다. 불행히도 열이 너무 많아 항목 A, B 및 B, A가 있습니다. 중복 된 항목을 제거해야합니다. 누군가 제발 기능을 제공 할 수 있습니까?VBA는 방향성이없는 그래프를 만듭니다.
예 :
분리되는 출력 선호하지만 동일한 입력 항목을 수정하는 경우는 OK이다.
이 질문에 대답함으로써, 기본 사항을 이해하고 다음 번에 귀하의 절반 업무 해결책을 제시하는 출발점 또는 아이디어를 얻길 바랍니다. VBA없이
:
당신은 문자열을 비교할 수 있습니다. 셀 D2에서 ->=IF(A2<B2,A2,B2)
은 두 글자 중 첫 글자를 알파벳으로 표시합니다. 같은 일이 E2 ->=IF(A2<B2,B2,A2)
으로 이동합니다. 이 수식을 끝까지 복사 한 다음 값으로 복사/붙여 넣기를 한 다음 데이터 리본에서 중복을 제거합니다. VBA를 사용
:
당신은 다시 비교를 사용하여 문자 순서를 변경할 수 있습니다, 다음 사이에서 혼수 상태로을 연결. 그런 다음 사전에 존재하는지 확인하고 사전에없는 경우 사전에 추가하십시오. 프로세스의 워크 시트 셀에 내용을 쓰거나 나중에 사전에서 추출 할 수 있습니다.
Sub removeDub()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Dim i As Long
Dim s1, s2 As String
'Dim a() As String
With Sheets("Sheet1")
For i = 2 To .Range("A1").End(xlDown).Row
If Cells(i, 1).Value < Cells(i, 2).Value Then
s1 = .Cells(i, 1).Value
s2 = .Cells(i, 2).Value
Else
s1 = .Cells(i, 2).Value
s2 = .Cells(i, 1).Value
End If
If Not dict.Exists(s1 & "," & s2) Then
dict.Add s1 & "," & s2, 1
.Range("D" & .Cells.Rows.Count).End(xlUp).Offset(1) = s1
.Range("E" & .Cells.Rows.Count).End(xlUp).Offset(1) = s2
End If
Next i
'For Each Key In dict.Keys
' a = Split(Key, ",")
' .Range("D" & .Cells.Rows.Count).End(xlUp).Offset(1) = a(0)
' .Range("E" & .Cells.Rows.Count).End(xlUp).Offset(1) = a(1)
'Next Key
End With
End Sub
정말 고마워요! :) –