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

Arbeitsspeicher läuft voll match

Arbeitsspeicher läuft voll match
22.09.2021 13:51:03
Jochen
Hallo zusammen,
ich habe das Problem, dass ich große Datenmengen verarbeiten muss. Dazu gehört das überprüfen ob Werte bereits vorhanden sind. Dazu benutze ich die Match Funktion.
Es wird überprüft ob der Wert in der Zelle "cells(i+2,1)" im Array "Suche" vorhanden ist.
Nun tritt allerdings das Problem auf, dass die Matchfunktion den Arbeitsspeicher ab einer gewissen Anzahl an Werten im Array "Suche" (ca. 80.000 bis 90.000 Einträge) volllaufen lässt. Ich hab auch bereits auf der Microsoftseite in Erfahrung gebracht das die Matchfunktion dazu neigt viel Arbeitsspeicher zu brauchen.
Jetzt stellt sich mir die Frage ob es eine Alternative Funktion/Code gibt (vergleichbar schnell) um dies abzuprüfen bzw ob man das volllaufen des Arbeitsspeichers bei der Matchfunktion verhindern kann.
Anbei ein Ausschnitt aus meinem Code.
For i = 0 To zeilen - 1
If Not IsError(Application.Match(Cells(i + 2, 1), Suche, 0)) Then
....
End If
Next i
vielen Dank schonmal im voraus :)
Gruß Jochen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VERGLEICH(...;...;0) ist halt tatsächlich Matsch
22.09.2021 14:08:44
lupo1
... versuche, mit sortierten Daten und ohne die 0 zu arbeiten.
AW: VERGLEICH(...;...;0) ist halt tatsächlich Matsch
22.09.2021 16:58:37
Jochen
Hallo lupo1,
das hatte mein Problem leider auch nicht gelöst, allerdings ist das Sortieren ein guter punkt an den ich nicht gedacht habe.
Gruß Jochen
AW: Arbeitsspeicher läuft voll match
22.09.2021 14:11:34
Daniel
Hi
Schreibe den Inhalt des Array Suche in eine Spalte.
Sortiere diese Spalte aufsteigend.
Verwende für die Prüfung ob der Suchbegriff in der Spalte vorhanden ist, die Formel:
=SVerweis(Suchwert;SuchSpalte;1;Wahr)=Suchwert
Durch die Sortierung sollte die Suche bei der Datenmenge c.a. 3000x schneller sein.
Gruß Daniel
AW: Arbeitsspeicher läuft voll match
22.09.2021 15:27:44
Rudi
Hallo,
wie baust du denn das Array 'Suche' auf?
Evtl. bietet sich hier besser ein Dictionary-Objekt an. Das kann man extrem schnell auf vorhandene Elemente prüfen.
For i = 0 To zeilen - 1
If Not objSuche.Exists(Cells(i+2, 1).Value Then
....
End If
Next i
Gruß
Rudi
Anzeige
AW: Arbeitsspeicher läuft voll match
22.09.2021 16:56:04
Jochen
Hallo Rudi,
super vielen dank dir, dass vorgehen über ein Dictionary-Objekt scheint mein Problem gelöst zu haben.
Gruß Jochen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige