Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
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

Zwei Arrays vergleichen

Zwei Arrays vergleichen
24.01.2013 20:36:31
Gerd
Hallo,
ich suchen einen effizienten Weg, zwei Array zu vergleichen und Elemente zu löschen.
Folgende Situation:
1. es gibt ein eindimensionales Array A mit nummerischen Werten z.B. (23,45,64,3,2,6,..)
2. es gibt ein zweites, eindimensionales Array B mit nummerischen Werten (3, 4, 12, 23...)
3) ich möchte gern alle in Array B existierenden Elementen in Array A löschen
Dabei gilt:
- alle Elemente sind numerisch (long)
- die Elemente in den Arrays sind nicht sortiert
- in jedem Array sind ca. 50 - 10.000 Elemente
Leider kenne ich mich mit Array nicht aus. Der Lösungsweg ist egal, vielleicht sortiert man die Elemente erst und nimmt dann ein Schleife oder gibt es vielleicht so etwas wie ein INTERSECT im SQL ?
Viele Grüße,
Gerd

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
scripting.dictionary
24.01.2013 23:37:03
CitizenX
Hi,
Bsp:

Option Explicit
Sub test()
Dim arrA(), arrB(), i
Dim oDict: Set oDict = CreateObject("scripting.dictionary")
arrA = Application.Transpose(Range("A1:A25000").Value) 'dein ArrayA
arrB = Application.Transpose(Range("B1:B25000").Value) 'dein ArrayB
For i = 1 To UBound(arrA)
oDict(arrA(i)) = 0
Next
For i = 1 To UBound(arrB)
If oDict.exists(arrB(i)) Then oDict.Remove arrB(i)
Next
arrA = oDict.Keys
End Sub
Grüße
Steffen

AW: Zwei Arrays vergleichen
24.01.2013 23:44:12
Mustafa
Hallo Gerd,
ich weiss nicht ob das Effizient genug ist, aber so könnte es gehen
Sub ArrayVergleich()
Dim ArrayA(20), ArrayB(10)
Dim IntX As Integer, IntY As Integer
For IntX = LBound(ArrayA) To UBound(ArrayA)
For IntY = LBound(ArrayB) To UBound(ArrayB)
If ArrayA(IntX) = ArrayB(IntY) Then ArrayA(IntX) = ""
Next
Next
End Sub
Rückmeldung obs Hilft wäre nett.
Gruß aus der Domstadt Köln.

Anzeige
AW: Zwei Arrays vergleichen
27.01.2013 17:25:47
Gerd
Vielen Dank, ich glaube beide Lösungen funkionieren.
Ich bin noch dabei einen größeren Testfall aufzubauen und die Performance zu vergleichen.
Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen