한 열 아래의 고유 값을 다른 열의 동일한 값으로 이동하는 방법은 무엇입니까?

한 열 아래의 고유 값을 다른 열의 동일한 값으로 이동하는 방법은 무엇입니까?

내 친구는 하나는 고유한 값을 갖고 다른 하나는 동일한 값을 가지지만 아래와 같이 중복되는 두 개의 열을 가지고 있습니다.

Column 1    Column 2
ABC123      ABC123
CDE456      ABC123
EFG789      ABC123
            ABC123
            CDE456
            CDE456
            CDE456
            EFG789

때로는 열 2에 모든 값이 없는 경우도 있습니다. 이 경우 열 2에 해당 값이 존재하지 않는다는 점을 분명히 해야 한다고 생각합니다. 그가 원하는 것은 열 1의 값이 행 번호로 이동하기를 원하는 것입니다. 아래와 같이 중복 값 열에 동일한 값이 있습니다.

Column 1    Column 2
ABC123      ABC123
            ABC123
            ABC123
            ABC123
CDE456      CDE456
            CDE456
            CDE456
EFG789      EFG789

매크로나 내부 Excel 기능을 사용하여 Excel에서 이 작업을 고통 없이 수행할 수 있는 방법이 있습니까?

답변1

이것은 귀하의 질문이 요청한 것입니다.

Sub ShowStartingPoints()

Dim rowA As Integer
rowA = 1


Do While (Range("A" & rowA).Value <> "")


Dim row As Integer
row = 1


Dim doesValueExitInB As Boolean
doesValueExitInB = False

Dim valueA As String

valueA = Range("A" & rowA).Value


Do While (Range("B" & row).Value <> "")

If (valueA = Range("B" & row).Value) Then

Range("A" & rowA).Value = ""
Range("A" & row).Value = valueA
doesValueExitInB = True
Exit Do

End If

row = row + 1

Loop 'Loops B col

If Not doesValueExitInB Then

    Range("C" & rowA) = Range("A" & rowA)
    Range("A" & rowA) = ""
    Range("C" & rowA).Interior.ColorIndex = 3
End If


rowA = rowA + 1


Loop ' loops A col

End Sub

매크로 이전

여기에 이미지 설명을 입력하세요

매크로 이후

여기에 이미지 설명을 입력하세요

여기에는 귀하의 예가 적용되지 않는 문제가 있을 것입니다. 앞서 설명한 것처럼 A열에 긴 목록이 있는 경우 값이 다른 값을 대체하므로 데이터를 덮어쓰게 됩니다.

첫 번째 스크린샷에서 A5에는 No 값이 있습니다. 이는 CDE456이 B5에서 시작되는 곳이기도 합니다. 따라서 A3 값이 B열에서 시작하는 위치를 확인합니다. ColB의 CDE456은 5행에서 시작하여 A5로 이동합니다(귀하의 질문에 대한 요청에 따라)... Kaboom, 방금 값을 썼습니다. 그러나 귀하의 질문에는 이에 대한 언급이 없으므로 문제가 되지 않는다고 가정하겠습니다(또한 언제든지 필요에 맞게 코드를 조정할 수 있습니다).

관련 정보