Anzeige
Archiv - Navigation
1360to1364
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

Alternative für sverweis - Auslesen von Daten

Alternative für sverweis - Auslesen von Daten
07.05.2014 13:35:58
Daten
Hallo zusammen
Ich habe folgende Ausgangslage:
Ein Tabellenblatt mit ca. 300‘000 Zeilen (jedes Produkt eine Zeile) und ca. 300 Spalten (verschiedene Ausprägungen des Produktes; z.B. Grösse, Gewicht, etc.). Dieses Tabellenblatt wird automatisch generiert und kann nicht abgeändert werden.
Will man ein Produkt genauer betrachten, muss man sehr viel nach rechts scrollen…
Ziel
In einem zweiten Tabellenblatt soll ein bestimmtes Produkt ausgewählt werden können (nicht mit Dropdown sondern durch manuelle Eingabe der Produktnummer) und anschliessend werden untereinander die Werte der wichtigsten Ausprägungen aufgelistet.
Natürlich kann das mit sverweis gelöst werden, jedoch dauert die Berechnung aufgrund der Grösse der Datei bzw. der grossen Datenmenge sehr lange. Gibt es alternative Möglichkeiten, welche weniger rechnerintensiv sind als sverweis? Und nein, ich kann die Grösse der Ausgangstabelle nicht reduzieren ;-)
Danke im Voraus!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alternative für sverweis - Auslesen von Daten
07.05.2014 14:10:43
Daten
Hallo
teste mal so, folgendes Makro in Tabelle2 einfügen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim SN As String
Dim c
Dim myrow
Dim i
If Target.Address(0, 0) = "B1" Then  'die Eingabezelle
SN = Target.Value
Set c = Sheets("Tabelle1").Columns(1).Find(SN) 'gesucht wird in Tabelle1 Spalte A
If Not c Is Nothing Then
myrow = c.Row
With ActiveSheet
For i = 2 To 300
Cells(i, 2).Value = Sheets("Tabelle1").Cells(myrow, i).Value
Next
End With
End If
End If
End Sub
in Zelle B1 in Tabelle2 die Suchnummer eingeben, darunter sollten dann die Werte aufgelistet werden
Gruß Ewald

Anzeige
VBA ist sicher keine Alternative, Ewald (owT)
07.05.2014 14:16:15
EtoPHG

AW: Alternative für sverweis - Auslesen von Daten
07.05.2014 14:11:09
Daten
Hallo,
evtl. DBAUSZUG().
Gruß
Rudi

AW: Alternative für sverweis - Auslesen von Daten
07.05.2014 14:23:18
Daten
Hallo Bucher,
Kommt drauf an, wie das Produkt ausgewählt wird.
Handelt es sich um eine Produktnummer und ist diese im Quellblatt in einer sortierten Spalte vorhanden, dann kann eine =VERGLEICH auf diese sehr schnell den Zeilenindex des Quellblatts liefern.
Alle restlichen Spaltenwerte können dann mit Basis dieser Zeilenummer ebenfalls sehr schnell mit =INDEX ermittelt werden.
Also: Nicht 300 SVERWEISE für die Spaltenwerte, sondern 1 x VERGLEICH(Kriterium;QuellSpalte;0) und 300 x INDEX(Matrix;ZeileAusVergleich;Spalte)!
Gruess Hansueli

Anzeige
AW: Alternative für sverweis - Auslesen von Daten
07.05.2014 14:39:27
Daten
Hallo zusammen
Besten Dank für eure schnellen Antworten! Ich werde sie morgen testen und Bescheid geben, ob's funktioniert hat :-)
LG, Stephan

Bereich_Verweis ?
07.05.2014 15:18:22
Klaus
Hallo Bucher,
der "übliche" Beschleuniger für die SVERWEIS-Funktion ist, den Schalter "BEREICH_VERWEIS" auf WAHR zu setzen und die Liste, in der gesucht wird, sortiert zu halten. Ob das besser/schlechter ist als DBAUSZUG() oder INDEX() kann ich nicht sagen.
Bei 90 Millionen Feldern bietet es sich natürlich auch an, über eine Lösung in ACCESS oder ähnlichem nachzudenken. Excel ist kein Ersatz für eine echte Datenbank!
Grüße,
Klaus M.vdT.

Anzeige
AW: Bereich_Verweis ? UND Index
07.05.2014 21:22:56
Daniel
Hi
Die Variante mit Bereich.Verweis = 1 mit sortierten Daten reduziert den Rechenaufwand, wenn die Suchmatrix aus vielen Zeilen besteht.
Die von Hansueli vorgeschlagene Index-Variante reduziert den Rechenaufwand, wenn zu eine Zeilennummer viele Spalten ausgelesen werden müssen.
Da die genannte Datenmenge aus vielen Zeilen und vielen Spalten besteht, sollte man beide Möglichkeiten kombinieren. Das mit dem Bereich-Verweis funktioniert auch mit der Vergleichs-Funktion.
Das Formelwek sieht dann in etwa so aus:
- in Zelle a1 steht der Suchbegriff
- in Zelle b1 wird die Zeilennummer der Fundstelle ermittelt
- ab Spalten c werden dann die Daten ausgegeben, diese Formel kann nach rechts gezogen werden.
B1: =vergleich(a1;Tabelle1!$A:$A;1)
C1: =index(Tabelle1!B:B;$B1)
Wenn noch geprüft werden muss, ob der Suchbegriff überhaupt vorhanden ist, sieht das Formelwek so aus:
B1: =wenn(sverweis(a1;Tabelle1!$A:$A;1;wahr)=a1;vergleich(a1;Tabelle1!$A:$A;1);"")
C1: =wenn(istzahl($b1);index(Tabelle1!B:B;$B1);"")
Gruß Daniel
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige