如何將一列中的唯一值向下移動到另一列中的相同值?

如何將一列中的唯一值向下移動到另一列中的相同值?

我的朋友有兩列,其中一列具有唯一值,另一列具有相同的值,但也重複,如下所示

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

有時,第2 列並不總是包含所有值,在這種情況下,我認為只需要明確它們不存在於第2 列中。號重複值欄位中具有相同的值,如下所示。

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。因此,我們檢查A3 的值在B 列中開始的位置。 。但是,您的問題沒有提到這一點,所以我認為這不是問題(另外,您始終可以根據您的需求調整程式碼)。

相關內容