Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vergleich zweier Datenmengen – summierte Anzahl id

Forumthread: Vergleich zweier Datenmengen – summierte Anzahl id

Vergleich zweier Datenmengen – summierte Anzahl id
28.12.2017 09:34:11
Sascha
Guten Morgen zusammen,
ich finde leider keine Lösung für folgende(s) Problem(e):
Problem 1:
Mir liegen zwei größere Datenmengen vor (160.000 Zeilen / 200.000 Zeilen). Die Daten dürften zu einem gewissen Teil identisch sein und diese Menge ist für mich relevant. Ich bräuchte also bspw. eine Formel, die besagt: „Gib mir die Anzahl alle identischen Werte aus Tabellenblatt 1, Spalte A und Tabellenblatt 2, Spalte A “.
Siehe dazu Beispiel 1 der Excel-Datei: https://www.herber.de/bbs/user/118551.xlsx
(Das gewünschte Ergebnis für Beispiel 1 wäre 4, da vier Werte in beiden Mengen identisch sind [grün markiert])
Problem 2:
Ist prinzipiell identisch mit Problem 1, nur dass mehrere Spalten miteinander verglichen werden sollen, z.B. „Gib mir die Anzahl alle identischen Werte aus Tabellenblatt 1, Spalte A / Spalte B und Tabellenblatt 2, Spalte A / Spalte B“.
Siehe dazu Beispiel 2 der Excel-Datei: https://www.herber.de/bbs/user/118551.xlsx
(Das gewünschte Ergebnis für Beispiel 2 wären nur noch 3, da einem Wert eine andere Nummer zugeordnet ist)
Die einzige Lösung, die mir eingefallen ist, war bisher eine Hilfsspalte mit ZÄHLENWENN(S). Problem hierbei ist:
a) Es dauert sehr, sehr lange.
b) Ich müsste sehr viele Hilfsspalten anlegen.
c) Um diese Hilfsspalten anlegen zu können, müsste ich die Formel in Werte umwandeln und könnte daher die Auswertung nicht automatisch „reproduzieren“ (In Unregelmäßigen Abständen müsste diese Tabelle aktualisiert werden.)
Danke und viele Grüße
Sascha
Anzeige

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

Betreff
Datum
Anwender
Anzeige
32.000 Datensätze in 0,3 Sekunden verglichen
28.12.2017 09:40:04
lupo1
http://xxcl.de/0052.htm (unten, "Gegenüberstellung").
Du musst den Code und Deine Daten entsprechend etwas anpassen. Nach dem Durchlauf zählst Du dann die komplett besetzten Zielzeilen.
zu "Problem 1"
28.12.2017 12:28:03
ransi
Hallo,
Teste mal dies für "Problem 1":
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit



Sub Machs()
    Dim Arr1 As Variant
    Dim Arr2 As Variant
    Dim objDic As Object
    Dim L As Long
    Dim lngOut As Long
    'Dim dbLTimer As Double
    'dbLTimer = Timer
    Set objDic = CreateObject("scripting.Dictionary")
    With Sheets("BEISPIEL 1 - Datenmenge 1")
        Arr1 = .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    End With
    With Sheets("BEISPIEL 1 - Datenmenge 2")
        Arr2 = .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    End With
    For L = LBound(Arr2) To UBound(Arr2)
        objDic(Arr2(L, 1)) = 0
    Next
    For L = LBound(Arr1) To UBound(Arr1)
        If objDic.exists(Arr1(L, 1)) Then lngOut = lngOut + 1
    Next
    MsgBox lngOut '& vbCrLf & Timer - dbLTimer
End Sub


Habs mal nachgebaut mit 160000 und 200000 Datensätzen.
Die Berechnung dauert ca. 10 Sekunden.
ransi
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige