Doppelte Werte erkennen und automatisch eine Erweiterung hinzufügen

1280
Daniel

Ich benötige eine Formel oder ein Makro für Excel, um die nächsten Operationen
auszuführen : Identifizieren Sie die Duplikate und lassen Sie den ersten Wert so, wie er zum Beispiel ist

2 2 2 2 2 2 

Soll werden

2 2.1 2.2 2.3 2.4 2.5 

Dies sollte für alle Duplikate in einer bestimmten Spalte erfolgen, in diesem Fall die Spalte B.

Was ich bisher ausprobiert habe, war die Verwendung einer Formel

=IF(COUNTIF($B$1:$B$5000,B1)>1,B1& " (" & COUNTIF(B$1:B1,B1) & ")",B1) 

Was nicht funktioniert hat und im Falle der Programmierung eines Makros in VB ist nicht wirklich meine starke Suite. Das von mir getestete Makro funktioniert auch nicht:

Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim dataRng As Range Dim dataArr() As Variant, output() As String Dim y As Long, i As Long, j As Long, tmpcount As Long Set dataRng = Range("B1").Resize(Me.UsedRange.Rows.Count, 1) If Not Intersect(Target, dataRng) Is Nothing Then dataArr = dataRng.Value ReDim output(1 To UBound(dataArr, 1), 1 To 1) For y = 1 To UBound(dataArr, 1) If Right(dataArr(y, 1), 1) = ")" Then dataArr(y, 1) = Left(dataArr(y, 1), InStr(dataArr(y, 1), " (") - 1) End If Next y For i = 1 To UBound(dataArr, 1) tmpcount = 0 output(i, 1) = dataArr(i, 1) For j = 1 To UBound(dataArr, 1) If dataArr(i, 1) = dataArr(j, 1) Then tmpcount = tmpcount + 1 If j = i And tmpcount > 1 Then output(i, 1) = dataArr(i, 1) & " (" & tmpcount & ")" Exit For End If If j > i And tmpcount > 1 Then output(i, 1) = dataArr(i, 1) & " (" & tmpcount - 1 & ")" Exit For End If End If Next j Next i Call printoutput(output, dataRng) End If End Sub Private Sub printoutput(what As Variant, where As Range) Application.EnableEvents = False where.Value = what Application.EnableEvents = True End Sub 

Hat jemand eine Vorstellung davon, was hier zu tun ist? Vielen Dank im Voraus für Ihre Antworten.

1
Weitere Informationen werden hier benötigt. Sprechen wir als Erstes über Excel? Jarmund vor 8 Jahren 1
Entschuldigung, ja wir reden über Excel Daniel vor 8 Jahren 0
In diesem Fall sollten Sie dies der Frage hinzufügen Jarmund vor 8 Jahren 1
Ich habe es jetzt gemacht :) Daniel vor 8 Jahren 0
Sie sollten auch hinzufügen, was Sie versuchen, wenn Ihre Frage lautet: "mach meine Arbeit für mich" :( Dave vor 8 Jahren 0
Entschuldigung, ich bin neu dabei, werde ich Daniel vor 8 Jahren 0
Daniel, +1 von mir! Dies ist jetzt eine großartige Frage. In Ihrem Beispiel zeigen Sie nur Lots von 2, aber nach 2 gibt es jemals eine 3? Ich meine, wenn Sie 2 haben, dann geben Sie 2.1 in die nächste Zeile ein und dann 2.2 in die nächste Zeile, dann können Sie diese nach unten ziehen und Excel wird es für Sie auffüllen Dave vor 8 Jahren 0
Das war nur ein Beispiel. Ich habe wahrscheinlich mehr als 5000 Zellen, um nach Duplikaten zu suchen und diese Aktion für jede durchzuführen, während die von mir empfangenen Excel alle 15 Minuten aktualisiert werden. Die Werte, die ich habe, entsprechen eher der Linie 63539 oder 85451, die mehrmals erscheinen (Duplikate). Ich möchte die Duplikate nicht loswerden, da diese ebenfalls sehr wichtig sind. Alles, was ich brauche, ist, die Erweiterung .1, .2 ..... und so weiter zu jedem gefundenen Duplikat hinzufügen zu können erster gefundener Wert wie er ist Daniel vor 8 Jahren 0

2 Antworten auf die Frage

3
Gary's Student

Bei Werten in Spalte A in B1 Folgendes eingeben:

=A1 

und in B2 eingeben:

=A2 & IF(COUNTIF($A$1:A1,A2)=0,"","." & COUNTIF($A$1:A1,A2)) 

und abschreiben:

Hinweis : Die Werte in Spalte A müssen nicht sortiert werden.

Ich habe eine Fehlermeldung mit dieser Formel erhalten. Wie kann ich einen Druckbildschirm auch als Kommentar senden? Daniel vor 8 Jahren 0
Dies ist was http://de.tinypic.com/r/mja83/9 herauskam Daniel vor 8 Jahren 0
@Daniel ** Stellen Sie sicher, dass Ihre Formel Ihren lokalen Spracheinstellungen entspricht. ** Gary's Student vor 8 Jahren 0
Was sind Ihre Einstellungen, weil ich meine geändert habe und es immer noch nicht funktioniert Daniel vor 8 Jahren 0
Ich habe versucht, zur Sprache Englisch (US) zu wechseln, und es funktioniert immer noch nicht Daniel vor 8 Jahren 0
0

Versuchen Sie, die Antwort aufzuteilen, um die Ursache des Fehlers zu sehen (Ich konnte Ihren Link de.tinypic.com/r/mja83/9 nicht öffnen, um zu sehen, was passiert). Zum Beispiel write = countif ($ A $ 1: A1, A2) in C2 versuchen Sie es mit fx oder fügen Sie die Formel ein, um die entsprechende in Ihrer Sprache zu verwenden, und vielleicht ist das Listentrennzeichen; nicht in den Computereinstellungen. Auch für = If (C2 = 0, "", ",") in D2 Dann in B2 = A2 & D2 & C2 Wenn alles stimmt, kombinieren Sie die Formeln erneut. Garys Formel hat recht und funktioniert