Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
584to588
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
584to588
584to588
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SVERWEIS Abfrage von mehreren Arbeitsblättern.

SVERWEIS Abfrage von mehreren Arbeitsblättern.
17.03.2005 12:03:36
mehreren
Hallo!
Ist es bitte möglich , mittels SVERWEIS eine Abfrage über mehrere Arbeitsblätter durchzuführen?
Beispiel:
Ist der Wert in Tabelle1 nicht vorhanden, dann durchsuche Tabelle2 usw.
Danke
Josef

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

Betreff
Datum
Anwender
Anzeige
AW: SVERWEIS Abfrage von mehreren Arbeitsblättern.
17.03.2005 12:51:01
mehreren
Hi,
probier das: =WENN(ISTFEHLER(SVERWEIS(A2;Tabelle2!$A$2:$B$16;2;0));SVERWEIS(A2;Tabelle3!$A$2:$B$16;2;0);SVERWEIS(A2;Tabelle2!$A$2:$B$16;2;0))
Gruß
Thomas
SVERWEIS über mehrere Blätter - mit UDF
17.03.2005 13:20:55
Boris
Hi Josef,
...ich hab kürzlich eine ähnliche Funktion für ZÄHLENWENN über mehrere Blätter geschrieben - und sie jetzt kurzerhand für den SVERWEIS umgebaut.
Option Explicit

Function SVERWEIS3D(Bezug As Variant, Suchkriterium As Variant, Spaltenindex As Integer) As Variant
Dim s           As String       'Formelstring
Dim WsStart     As String       'Name Erstes Blatt
Dim WsEnde      As String       'Name Letztes Blatt
Dim iCount      As Integer      'Zähler vom 1. bis zum letzten Blatt
Dim i           As Integer      'Index des 1. Blattes
Dim j           As Integer      'Index des letzten Blattes
Dim B           As Boolean      'Prüfung, ob Mehrfachbezug vorhanden
Dim sBereich    As String       'Bereich auslesen bei Mehrfachmarkierung
Const MB        As String = "*:*!*,*" 'typische Syntax für Mehrfachbereich
s = Application.Caller.Formula 'Formel auslesen
'Prüfen, ob Mehrfachmarkierung vorliegt
B = s Like MB
If B Then 'Falls Mehrfachbezug vorhanden in der Form: Tabelle1:Tabelle3!A1:C100
'Formelstring innerhalb der Klammern auslesen und an s übergeben
s = Mid(s, InStr(1, s, "(") + 1, InStr(1, s, ")") - InStr(1, s, "(") - 1)
'Erstes Blatt auslesen
WsStart = Trim(Left(s, InStr(1, s, ":") - 1))
'Letztes Blatt auslesen
WsEnde = Trim(Mid(s, InStr(1, s, ":") + 1, InStr(1, s, "!") - InStr(1, s, ":") - 1))
'Zellbereich auslesen
sBereich = Trim(Mid(s, InStr(1, s, "!") + 1, InStr(1, s, ",") - InStr(1, s, "!") - 1))
'Index des 1. Blattes ermitteln
i = Worksheets(WsStart).Index
'Index des letzten Blattes ermitteln
j = Worksheets(WsEnde).Index
'Schleife über alle tangierten Blätter
For iCount = i To j
With WorksheetFunction
If .CountIf(Sheets(iCount).Range(sBereich).Columns(1), Suchkriterium) Then
SVERWEIS3D = .VLookup(Suchkriterium, Sheets(iCount).Range(sBereich), Spaltenindex, 0)
Exit Function
Else
SVERWEIS3D = "x" * 1
End If
End With
Next iCount
Else 'Falls kein Mehrfachbezug vorhanden: Einfacher SVERWEIS
SVERWEIS3D = WorksheetFunction.VLookup(Suchkriterium, Bezug, Spaltenindex, 0)
End If
End Function

Funktionssyntax:
=SVERWEIS3D(Bezug;Suchkriterium;Spaltenindex)
Den klassischen 4. Paramter des SVERWEIS (Bereich_Verweis) hab ich einfach mal weggelassen - es wird NUR auf exakte Übereinstimmung geprüft.
Für den Parameter Bezug kannst du hier auch eine Mehrfachmarkierung (erzeugt bei gedrückter Shift-Taste) einsetzen - also z.B.:
=SVERWEIS3D(Tabelle1:Tabelle3!B1:Z100;A1;2)
Gesucht wird der Wert aus A1 in der Matrix B1:Z100 in allen Blättern, die zwischen Tabelle1 und Tabelle3 liegen. Sobald ein Treffer vorliegt, wird das Ergebnis (hier aus der 2. Spalte) geliefert.
Natürlich kannst du diese eigene Funktion auch nur auf 1 Blatt anwenden - dann ist es nix anderes, als der normale SVERWEIS.
Wird nix gefunden, dann gibt es #WERT!.
Um die Funktion einzubinden:
VBA-Editor mit Alt+F11 öffnen, Einfügen - Modul - und dann in das rechte Fenster den gesamten Code reinkopieren.
Editor dann wieder schließen - und du kannst die Funktion wie beschrieben anwenden.
Grüße Boris
Anzeige
AW: SVERWEIS über mehrere Blätter - mit UDF
17.03.2005 14:55:32
Josef
Hallo Boris!
Danke für Deine Hilfe.
Ich habe folgende Formel eingegeben:
=SVERWEIS3D("'[BHZ.xls]01_0999:40_9999'!";$A$2:$F$20000;A2;6)
Ich erhalte jetzt die Meldung #Wert, obwohl der Wert vorhanden wäre.
Was mache ich hier bitte noch falsch?
Danke
Josef
Die UDF geht NICHT mappenübergreifend...
17.03.2005 15:48:25
Boris
Hi Josef,
...sondern eben nur innerhalb einer Mappe.
Grüße Boris
AW: Die UDF geht NICHT mappenübergreifend...
18.03.2005 07:32:27
Josef
Danke Boris
Josef

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige