Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Doppelte Werte finden und untereinander auflisten

Doppelte Werte finden und untereinander auflisten
25.09.2023 10:39:22
Chris
Hallo zusammen,

ich habe ca. eintausend werte in Spalte A und B stehen. Beide Spalten möchte auf doppelte Einträge vergleichen. Jeder Eintrag, der doppelt vorhanden ist, soll in Spalte C untereinander aufgelistet werden. Ich habe dazu untenstehende Makro, welches mir den letzten doppelt vorhandenen Wert in C1 ausgibt. Vielleicht hat jmd. eine Idee, was geändert werden muss. Gruß Chris




Sub FD()

Dim arrA, arrB, i As Long, oDic As Object, c As Long

arrA = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
arrB = Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))

Set oDic = CreateObject("scripting.dictionary")

For i = 1 To UBound(arrB)
oDic(arrB(i, 1)) = 0
Next

For i = 1 To UBound(arrA)
If oDic.exists(arrA(i, 1)) Then
c = 1
ActiveSheet.Cells(c, 3) = arrA(i, 1)
End If
c = c + 1
Next i

End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Formellösung XL365/XLWeb (also ohne VBA)
25.09.2023 10:57:01
lupo1
=LET(x;VSTAPELN(A1:A8;B1:B7);EINDEUTIG(VSTAPELN(EINDEUTIG(x);EINDEUTIG(x;;1));;1))
AW: Doppelte Werte finden und untereinander auflisten
25.09.2023 12:05:28
Daniel
Hi

Welche Werte möchtest du denn haben?
Nur die die in beiden Spalten vorkommen oder auch die, die in einer Spalte mehrfach vorkommen?

Gruß Daniel
AW: Doppelte Werte finden und untereinander auflisten
25.09.2023 12:19:37
Chris
Hi Daniel,

der Nutzer Peter hat mir eine Antwort geschickt, die funktioniert.
Als zweite Variante benötige ich:

In Spalte A und B stehen Werte. Nur Spalte A kann doppelte Werte haben.
Excel soll alle doppelten Werte aus Spalte A und die jeweils danebenstehende Zelle (Spalte B) in Spalte D (und E) untereinander auflisten.
Bsp:

1 a
2 b
1 a
3 c
2 b

Ergebnis Spalten D und E:

1 a
1 a
2 b
2 b

Gruß
Chris
Anzeige
AW: Doppelte Werte finden und untereinander auflisten
25.09.2023 13:04:48
Chris
...
AW: Doppelte Werte finden und untereinander auflisten
25.09.2023 14:10:20
peter
Hallo



Sub FD2()

Dim arrA, i As Long, oDic As Object, c As Long

arrA = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))

Set oDic = CreateObject("scripting.dictionary")
c = 1

For i = 1 To UBound(arrA)
If oDic.exists(arrA(i, 1)) Then
ActiveSheet.Cells(c, 4) = ActiveSheet.Cells(oDic(arrA(i, 1)), 1)
ActiveSheet.Cells(c, 5) = ActiveSheet.Cells(oDic(arrA(i, 1)), 2)
c = c + 1
ActiveSheet.Cells(c, 4) = ActiveSheet.Cells(i, 1)
ActiveSheet.Cells(c, 5) = ActiveSheet.Cells(i, 2)
c = c + 1
Else
oDic(arrA(i, 1)) = i
End If
Next

End Sub



Peter
Anzeige
AW: Doppelte Werte finden und untereinander auflisten
25.09.2023 14:15:31
daniel
Hi
bei der genannten Datenmenge würde ich einfach Spalte A:B nach D:E kopieren
in Spalte F dann die einsamen herzen markieren und löschen.
mit der richtigen Sortierung sollte das auch sehr schnell sein.

also so
Sub test()

Range("A1").CurrentRegion.Copy Range("D2")
With Range("D2").CurrentRegion
.Sort Key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlGuess
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=if(or(RC4=R[-1]C4,RC4=R[1]C4),"""",1)"
.Formula = .Value
With .Offset(0, -2).Resize(, 3)
.Sort Key1:=.Cells(1, 3), order1:=xlAscending, Header:=xlGuess
Intersect(.Columns(3).SpecialCells(xlCellTypeConstants, 1).EntireRow, .Cells).Delete Shift:=xlUp
End With
End With
End With
End Sub
Anzeige
AW: Formellösung XL365/XLWeb (also ohne VBA)
25.09.2023 10:58:46
Chris
Danke Lupo1,

bitte per VBA...

Gruß
Chris
Formel geht IMMER direkt auch als VBA; umgekehrt NICHT.
25.09.2023 11:08:12
lupo1
... Du brauchst aber für meine Formel XL365.

Andere werden sich Deiner sicherlich noch annehmen.
AW: Formellösung XL365/XLWeb (also ohne VBA)
25.09.2023 11:11:40
peter
Hallo

c=1 gehört vor der FOR Schleife!!

Peter
AW: Formellösung XL365/XLWeb (also ohne VBA)
25.09.2023 11:27:48
Chris
Hallo Peter,

danke für den Hinweis. So richtig klappt das noch nicht. Getestet mit folgenden Werten (Spalte A/Spalte B)

1 1
4 4
2 2
3 5
5 5
6 6

Ergebnis:

1
4
2

5
6

Die leerzeile muss weg....

Chris


AW: Formellösung XL365/XLWeb (also ohne VBA)
25.09.2023 11:51:17
peter
Hallo



c=1
For i = 1 To UBound(arrA)
If oDic.exists(arrA(i, 1)) Then
ActiveSheet.Cells(c, 3) = arrA(i, 1)
c = c + 1
End If
Next i


Peter
Anzeige
AW: Formellösung XL365/XLWeb (also ohne VBA)
25.09.2023 12:15:19
Chris
HI Peter,

das ist es ! Danke

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige