Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: sverweis (Suche) im array

sverweis (Suche) im array
24.04.2018 07:25:59
Lutz
Hallo,
in einer Tabelle kann ich ja mit sverweis etwas suchen und mir dann den dazugehörigen Wert ausgegen lassen:
sverweis("Suchkriterium", "Suchbereich", "Spalte", 0)
Wenn ich jetzt zuvor die Tabellen
a) wo das Suchkriterium steht und
b) wo der Suchbereich ist jeweils in ein array einlese, dann funktioniert die Funktion ja nicht mehr.
Mein Code würde so aussehen (geht aber nicht):
For i = 1 to 20 step 1
For y = 1 to 10 step 1
ARRAY01(i, 2) = VLOOKUP((ARRAY02(y, 3), 4, 0))
Wie geht es richtig?
Danke und Gruß
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: sverweis (Suche) im array
24.04.2018 08:38:15
Daniel
Hi
Was soll denn der Suchwert sein und was der Suchbereich?
Der Suchbereich fehlt bei dir.
Die Innere Schleife (y) ist Unsinn, da jeder wert in den gleichen Index von ARRAY01 geschrieben wird.
Gruß Daniel
AW: sverweis (Suche) im array
24.04.2018 08:49:06
Lutz
Stimmt, die zweite Schleif ist unsinn:
For i = 1 to 20 step 1
ARRAY01(i, 2) = VLOOKUP((ARRAY02(4, 0))
Der Suchwert befindet sich im ARRAY01 in Spalte 2.
Der Suchbereich ist ARRAY02.
In der ersten Spalte vom ARRAY02 soll gesucht werden
und dann der Wert der 4. Spalte von ARRAY02 verwendet werden.
Gruß Lutz
Anzeige
AW: sverweis (Suche) im array
24.04.2018 09:16:02
Daniel
Hi
wenn du dir den Suchbegriff im Array überschreiben willst, dann so:
ARRAY01(i, 2) = Application.VLookUp(ARRAY01(i, 2), ARRAY02, 4, 0)
du kannst "Application.VLookUp" oder "Worksheetfunction.VLookUp" verwenden.
der Unterschied zwischen beiden Varianten liegt im Verhalten für den Fall, dass der Suchbegriff nicht gefunden werden kann.
bei Worksheetfunction.VLookUp bekommst du dann auf jeden Fall einen Fehlerabbruch im Code.
bei Application.VLookUp gibt dir die Funktion einen Fehlerwert zurück, dh der Code kann normal weiterlaufen, wenn er so geschrieben ist, das Fehlerwerte verarbeitet werden können (da muss man ein paar dinge beachten, z.B. muss die Aufnehmende Variable vom Typ "Variant" sein).
Alternativ kannst du hier auch ohne VLookUp mit einer inneren Schleife arbeiten:
For i = 1 to Ubound(ARRAY01, 1)
For j = 1 to Ubound(ARRAY02, 1)
if ARRAY01(i, 2) = ARRAY02(j, 1) Then
ARRAY01(i, 2) = ARRAY02(j, 4)
Exit For
end if
Next
Next

hier bleibt dann der Suchbegriff ARRAY01(i, 2) unverändert, falls er nicht in ARRAY02 vorhanden ist
Gruß Daniel
Anzeige
AW: sverweis (Suche) im array
24.04.2018 09:22:24
Lutz
Danke.
;
Anzeige
Anzeige

Infobox / Tutorial

sverweis im Array: So funktioniert's


Schritt-für-Schritt-Anleitung

Um die sverweis Funktion in einem Array korrekt anzuwenden, befolge diese Schritte:

  1. Arrays initialisieren: Stelle sicher, dass du deine Arrays korrekt definiert hast.

    Dim ARRAY01(1 To 20, 1 To 5) As Variant
    Dim ARRAY02(1 To 10, 1 To 5) As Variant
  2. Daten in Arrays einlesen: Fülle dein Array ARRAY02 mit den Daten, in denen du suchen möchtest.

  3. VBA Schleife erstellen: Verwende eine Schleife, um durch die Daten in ARRAY01 zu iterieren.

    For i = 1 To 20
       ARRAY01(i, 2) = Application.VLookup(ARRAY01(i, 2), ARRAY02, 4, False)
    Next i
  4. Fehlerbehandlung einfügen: Achte darauf, Fehler zu behandeln, falls der Suchwert nicht gefunden wird.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die beim Arbeiten mit sverweis in Arrays auftreten können, und deren Lösungen:

  • Fehler: "Typ nicht übereinstimmend": Stelle sicher, dass die Datentypen in den Arrays übereinstimmen. Wenn du z.B. Text suchst, achte darauf, dass die Vergleichswerte auch als Text formatiert sind.

  • Fehler: "Wert nicht gefunden": Wenn du Application.VLookUp verwendest und der Wert nicht gefunden wird, überprüfe, ob der Suchwert tatsächlich im Suchbereich (ARRAY02) vorhanden ist.

  • Unterschied zwischen VLOOKUP und Application.VLookUp: WorksheetFunction.VLookUp führt zu einem Fehler, während Application.VLookUp einen Fehlerwert zurückgibt, den du weiterverarbeiten kannst.


Alternative Methoden

Wenn du keine sverweis Funktion verwenden möchtest, kannst du auch mit einer inneren Schleife arbeiten:

For i = 1 To UBound(ARRAY01, 1)
    For j = 1 To UBound(ARRAY02, 1)
        If ARRAY01(i, 2) = ARRAY02(j, 1) Then
            ARRAY01(i, 2) = ARRAY02(j, 4)
            Exit For
        End If
    Next j
Next i

Diese Methode ist besonders nützlich, wenn du die Werte ohne vlookup vergleichen möchtest.


Praktische Beispiele

Hier ein praktisches Beispiel, wie du den sverweis in einem Array umsetzt:

  1. Daten einlesen:

    ARRAY02(1, 1) = "Apfel"
    ARRAY02(1, 4) = 5
  2. Suchbegriff setzen:

    ARRAY01(1, 2) = "Apfel"
  3. VLookup anwenden:

    ARRAY01(1, 2) = Application.VLookup(ARRAY01(1, 2), ARRAY02, 4, False)

Nach der Ausführung enthält ARRAY01(1, 2) den Wert 5 aus ARRAY02.


Tipps für Profis

  • Verwende Variant für die Aufnahmewerte: Wenn du mit Fehlern arbeitest, ist es hilfreich, die aufnehmenden Variablen als Variant zu deklarieren.

  • Optimierung der Schleifen: Achte darauf, dass deine Schleifen effizient sind, um die Ausführungszeit zu minimieren, besonders bei großen Datensätzen.

  • Dokumentation: Halte deinen Code gut dokumentiert, um später die Logik hinter deinen sverweis Aufrufen nachvollziehen zu können.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen VLOOKUP und sverweis?
Beide Funktionen sind gleichwertig; VLOOKUP ist die englische Bezeichnung, während sverweis die deutsche Variante ist.

2. Wie kann ich den sverweis in Arrays effizienter machen?
Du kannst die Anzahl der Schleifendurchläufe durch Sortierung der Daten in ARRAY02 reduzieren, um die Suche zu beschleunigen.

3. Was mache ich, wenn VLOOKUP einen Fehler zurückgibt?
Verwende Application.VLookUp, um Fehlerwerte zu erhalten, die du dann mit einer Fehlerbehandlung weiterverarbeiten kannst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige