Willkommen

Pivottabelle

Spezialfilter

Formeln

Zellformate

Bedingte Formate

Gültigkeit

Programmierung

UDF - Funktionen

Tipps & Tricks

Webabfrage

Fehlersuche

Farbindex

Shortcuts

Limitationen

Downloads

Links

Kontakt

Disclaimer

Impressum

Sverweis Spezial / Sverweis2
Benutzerdefinierte Funktion
 
Hier nun ein programmierter Sverweis, welchen ich freundlicherweise von Ransi für meine HP bekommen habe.
Ein komplexer Sverweis bei mehrfach vorkommenden Suchkriterien/Werten.
Im Gegensatz zum Standard-Sverweis, zeigt Sverweis2 alle Treffer an und sucht auch nach links. Auf Wunsch mit und ohne Duplikate.
 
Dieser Sverweis besitzt 4 feste + 2 optionale Parameter.
1. Eingabe des Suchbegriffs bzw der Zelladresse in der sich der Suchbegriff befindet
2. Suchbereich/Matrix
3. Die Suchspalte ( anders als beim Standard-Sverweis, hier ist es immer 1 ) innerhalb der Matrix
4. Die Ergebnisspalte innerhalb der Matrix
5. Optional - Sollen Duplikate angezeigt werden? Keine Eingabe = WAHR entspricht ohne Duplikate
6. Optional - Wahl eines Trennzeichens. Keine Eingabe = Komma als Trennzeichen
 
 
 
Hier eine kurze Gegenüberstellung zwischen dem Standard- und Spezialsverweis.
 
 
 
 
Nachfolgend eine kleine Beispieltabelle zum Aufruf und Arbeitsweise der Formel.
 
 
Tabelle2
 ABCDEFG
1       
2Formel-Nr   Suchmatrix
31.Suchbegriff:Toni VornameNachnameAbteilung
4Ergebnis:Müller, Meier, Müller ToniMüllerWareneingang
5    RalfMustermannWarenausgang
62.Suchbegriff:Toni HugoMustermannZoll
7Ergebnis:Müller/Meier PeterBeispielRetouren
8    ToniMeierKundenservice
93.Suchbegriff:Toni ToniMüllerZoll
10Ergebnis:Wareneingang, Kundenservice, Zoll    
11       
124Suchbegriff:Mustermann    
13Ergebnis:Ralf, Hugo    
14       
Formeln der Tabelle
C4 : =sverweis2(C3;E3:G9;1;2;FALSCH)
C7 : =sverweis2(C6;E3:G9;1;2;WAHR;"/")
C10 : =sverweis2(C9;E3:G9;1;3)
C13 : =sverweis2(C12;E3:G9;2;1)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
 
Die Tabelle zeigt in den Spalten E bis G die Abteilungsverantwortlichen für ein fiktives Unternehmen.
 
Formel1: Gesucht wird nach dem Vornamen "Toni". Optionaler Parameter für Duplikate steht auf "FALSCH". Es werden alle Treffer aus Spalte 2 der Matrix gelistet.
 
Formel2: Gesucht wird nach dem Vornamen "Toni". Optionaler Parameter für Duplikate steht auf "WAHR" und bei optionalem Parameter für Trennzeichen wurde der Schrägstrich gewählt. Es werden keine Duplikate gelistet.
 
Formel3: Gesucht wird nach "Toni". Es wurden keine der optionalen Parameter übergeben.
 
Formel4: Ein Beispiel für die Suche nach Links. Suchspalte ist 2 innerhalb der Matrix also in unserem Beispiel der Nachname. Ergebnisspalte ist 1 also der Vorname.
 
Damit die Formel genutzt werden kann, muss der unten genannte Code in ein "Allgemeines Modul". ( Siehe auch UDF - Funktionen
-> * Allgemeines Modul - Kurzanleitung *   )
 
 
 
 
Der Code für ein allgemeines Modul:
 
Public Function SVERWEIS2(Kriterium As String, _
    Bereich As Range, _
    SuchSpalte As Integer, _
    ErgebnisSpalte As Integer, _
    Optional Unikate As Boolean = True, _
    Optional Trenner As String = ", ") As String
'***********************************************
'Autor: Ransi
'***********************************************
Dim arrTmp
Dim L As Long
Dim Mydic As Object
arrTmp = Bereich
Set Mydic = CreateObject("Scripting.Dictionary")
If Unikate = True Then
    For L = 1 To UBound(arrTmp)
        If arrTmp(L, SuchSpalte) = Kriterium Then Mydic(arrTmp(L, ErgebnisSpalte)) = 0
    Next
    SVERWEIS2 = Join(Mydic.keys, Trenner)
    Else:
    For L = 1 To UBound(arrTmp)
        If arrTmp(L, SuchSpalte) = Kriterium Then Mydic(L) = arrTmp(L, ErgebnisSpalte)
    Next
    SVERWEIS2 = Join(Mydic.items, Trenner)
End If
End Function