Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellwerte aus verschiedenen Tabellen sammeln

Zellwerte aus verschiedenen Tabellen sammeln
28.02.2008 10:53:00
Hans-Jörg
Hallo,
habe eine Mappe mit einer Artikelliste auf mehreren Tabellen verteilt.
Tabelle1 = 000000 - 100000
Tabelle2 = 100001 - 200000
Tabelle3 = 200001 - 300000
......
Tabelle7 = 600001 - 7000000
ca 5000 Datensätze
In der Spalte AA wird in allen Tabellen ein Preis eingetragen.
Tabelle 8 besitzt alle Artikel und soll in der Spalte G die Preise der Tabellen1 - T7 einsammeln.
Mein Ansatz währe eine große WENN() Verschachtelung mit ISTNV(SVERWEIS()) und SVERWEIS() da in allen Tabellen nur der Preis in Spalte AA zur Artikelnummer in Spalte A gesucht wird.
Wer kann hier eine bessere Lösung finden.
vilen Dank
Hans-Jörg

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellwerte aus verschiedenen Tabellen sammeln
29.02.2008 15:25:33
fcs
Hallo Hans-Jörg,
du solltest keine Verschachtelung machen. Gibt wegen der vielen WENNs und SVERWEISE ein Problem.
Besser ist hier zu Addieren. Ergebnis 0 bedeutet dann ggf. nicht gefunden.

=WENN(ISTFEHLER(SVERWEIS(A2;Tabelle1!$A:$AA;1;FALSCH));0;
SVERWEIS(A2;Tabelle1!$A:$AA;27;FALSCH))+
WENN(ISTFEHLER(SVERWEIS(A2;Tabelle2!$A:$AA;1;FALSCH));0;
SVERWEIS(A2;Tabelle2!$A:$AA;27;FALSCH))+ u.s.w.


Eine Alternative wäre eine benutzerdefinierte VBA-Funktion:


Function SVERWEIS_Tabs(Suchen As Variant, _
Tabellenbereich As Variant, _
Tabelle1Bereich As Range, _
TabelleLetzteBereich As Range, _
SpalteWert As Long, _
Optional boVerweis As Boolean = True) As Variant
'SVERWEIS über mehrere Tabellen
'Suchen = gesuchter Wert
'Tabellenbereich = Bereich über meherere Tabellen: Tabelle1:Tabelle7!$A:$AA
'Dieser Parameter ist erforderlich, damit bei Änderungen in den Blättern zwischen _
1. und letem Blatt das Formelergebnis aktualisert wird.
'Tabelle1Bereich = Bereich in der 1. Tabelle: Tabelle1!$A:$AA
'TabelleLetzteBereich = Bereich in der letzten Tabelle: Tabelle7!$A:$AA
'Die Zell-Bereiche für die 3 Bereiche müssen identisch sein, damit Berechnungen _
und Aktualisierung der Formelergebnisse korrekt erfolgen.
'SpalteWert = Spalte im Bereich aus der das Ergebnis ausgelesen werden soll
'boVerweis = entspricht der Funktion des 4. parameters in SVERWEIS-Funktion
'Formelbeispiel: _
=SVERWEIS_Tabs(A2;Tabelle1:Tabelle7!$A:$AA;Tabelle1!$A:$AA;Tabelle7!$A:$AA;27;FALSCH)
Dim iIndex As Integer, Tabelle1 As String, Tabelle2 As String, Zellen As Range
Dim Bereich As String
Tabelle1 = Tabelle1Bereich.Parent.Name
Tabelle2 = TabelleLetzteBereich.Parent.Name
Bereich = Tabelle1Bereich.Address
On Error GoTo fehler
SVERWEIS_Tabs = "#NV"
For iIndex = Worksheets(Tabelle1).Index To Worksheets(Tabelle2).Index
Set Zellen = Worksheets(iIndex).Range(Bereich)
SVERWEIS_Tabs = Application.WorksheetFunction.VLookup(Suchen, Zellen, SpalteWert, _
boVerweis)
Exit For
weiter:
Next
Exit Function
fehler:
Resume weiter 'falls VLookup nichts findet
End Function


Das Ganze wird bei 5000 Datenzeilen jedoch ziemlich rechenintensiv.
Gruß
Franz

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige