Wie verschiebe ich eindeutige Werte in einer Spalte nach unten auf den gleichen Wert in einer anderen Spalte?

Wie verschiebe ich eindeutige Werte in einer Spalte nach unten auf den gleichen Wert in einer anderen Spalte?

Mein Freund hat zwei Spalten, von denen eine eindeutige Werte hat und eine andere Spalte dieselben Werte hat, aber auch dupliziert, wie unten gezeigt

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

Manchmal sind in Spalte 2 nicht alle Werte vorhanden. In diesem Fall muss meiner Meinung nach einfach klargestellt werden, dass sie in Spalte 2 nicht vorhanden sind. Er möchte, dass die Werte in Spalte 1 in die Zeilennummer mit demselben Wert in der Spalte mit den doppelten Werten verschoben werden, wie unten gezeigt.

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

Gibt es eine Möglichkeit, dies in Excel problemlos mit einem Makro oder einer internen Excel-Funktion zu tun?

Antwort1

Dies entspricht Ihren Fragen.

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

Vor dem Makro

Bildbeschreibung hier eingeben

Nach dem Makro

Bildbeschreibung hier eingeben

Dies wird Probleme mit sich bringen, die in Ihrem Beispiel nicht berücksichtigt werden. Wenn Sie in Spalte A eine lange Liste haben, wie ich gezeigt habe, werden Sie Daten überschreiben, weil ein Wert einen anderen Wert ersetzt!

Beachten Sie, dass A5 im ersten Screenshot den Wert Nr. hat. Dies ist auch die Stelle, an der CDE456 in B5 beginnt. Wir prüfen also, wo der Wert von A3 in Spalte B beginnt. CDE456 in Spalte B beginnt in Zeile 5 und wird daher nach A5 verschoben (gemäß Ihrer Anfrage in Ihrer Frage) ... Kaboom, wir haben gerade einen Wert überschrieben. Ihre Frage erwähnt dies jedoch nicht, daher gehe ich davon aus, dass dies kein Problem ist (außerdem können Sie den Code immer einfach an Ihre Bedürfnisse anpassen).

verwandte Informationen