Gleichzeitiges Suchen zweier Werte in zwei Spalten
Schritt-für-Schritt-Anleitung
Um in Excel mehrere Werte gleichzeitig in zwei Spalten zu suchen, kannst Du folgendes VBA-Makro verwenden. Das Beispiel geht davon aus, dass sich die Daten in "Tabelle1" befinden und die Suchwerte in "Tabelle2".
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
- Kopiere den folgenden Code in das Modul:
Sub SuchenArtikel()
Dim varArtikel, varLager, rngGefunden As Range, strAdresse1 As String
Dim wksListe As Worksheet, wksEingabe As Worksheet
' Namen der Tabellen und Zelladressen ggf. anpassen
Set wksListe = Worksheets("Tabelle1")
Set wksEingabe = Worksheets("Tabelle2")
varArtikel = wksEingabe.Range("A1")
varLager = wksEingabe.Range("B1")
With wksListe
' Artikel in Spalte 1 (A) suchen
Set rngGefunden = .Columns(1).Find(what:=varArtikel, LookIn:=xlValues, lookat:=xlWhole)
If rngGefunden Is Nothing Then
MsgBox "Artikel """ & varArtikel & """ nicht gefunden!"
Else
strAdresse1 = rngGefunden.Address
' Suche wiederholen bis Lagerplatz übereinstimmt oder Suchadresse sich wiederholt
Do
' Prüfen ob Lagerplatz mit Suchbegriff übereinstimmt
If rngGefunden.Offset(0, 1) = varLager Then
' Listen-Blatt aktivieren und Zeile markieren
.Activate
Rows(rngGefunden.Row).Select
Exit Do
End If
' Nächste Zelle mit Artikel suchen
Set rngGefunden = .Columns.FindNext(After:=rngGefunden)
' Prüfen, ob Suche wieder bei 1. Fundstelle angekommen ist.
If rngGefunden.Address = strAdresse1 Then
MsgBox "Kombination von Artikel """ & varArtikel & """ und Lagerplatz """ & varLager & """ nicht gefunden!"
Exit Do
End If
Loop
End If
End With
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Führe das Makro aus, indem Du
ALT + F8
drückst, das Makro auswählst und auf Ausführen
klickst.
Häufige Fehler und Lösungen
-
Fehler: "Artikel nicht gefunden!"
Lösung: Stelle sicher, dass die Artikelnummer in "Tabelle1" genau so geschrieben ist wie in "Tabelle2". Groß- und Kleinschreibung sowie Leerzeichen sind entscheidend.
-
Fehler: "Kombination nicht gefunden!"
Lösung: Überprüfe, ob sowohl die Artikelnummer als auch der Lagerplatz in "Tabelle2" korrekt eingegeben sind und in "Tabelle1" existieren.
Alternative Methoden
Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die SVERWEIS
-Funktion kombinieren:
- In einer neuen Zelle, zum Beispiel C1, kannst Du folgende Formel verwenden:
=UND(SVERWEIS(A1;Tabelle1!A:B;1;FALSCH)=A1;SVERWEIS(A1;Tabelle1!A:B;2;FALSCH)=B1)
Diese Formel gibt WAHR
zurück, wenn sowohl Artikelnummer als auch Lagerplatz in "Tabelle1" gefunden werden.
Praktische Beispiele
Angenommen, Du hast folgende Daten in "Tabelle1":
A |
B |
12345 |
Platz1 |
23456 |
Platz2 |
34567 |
Platz3 |
45678 |
Platz4 |
56789 |
Platz5 |
In "Tabelle2" hast Du:
Das oben stehende VBA-Makro wird Zeile 4 in "Tabelle1" markieren, wenn die Werte übereinstimmen.
Tipps für Profis
- Nutze die
Find
-Methode in VBA, um schneller mehrere Werte gleichzeitig zu suchen.
- Verwende
Application.ScreenUpdating = False
, um die Performance zu steigern, wenn Du große Datenmengen durchsuchst.
- Berücksichtige, dass die Daten in "Tabelle1" sortiert sein sollten, um die Suche zu optimieren.
FAQ: Häufige Fragen
1. Kann ich das Makro für mehr als zwei Spalten anpassen?
Ja, Du kannst das Makro erweitern, indem Du zusätzliche Variablen und Bedingungen für die weiteren Spalten hinzufügst.
2. Funktioniert das auch in Excel Online?
Leider unterstützt Excel Online keine VBA-Makros. Du musst eine Desktop-Version von Excel verwenden.
3. Gibt es eine Möglichkeit, die Suche auf mehrere Zeilen gleichzeitig auszudehnen?
Ja, Du kannst eine Schleife einfügen, die alle Zeilen in "Tabelle2" durchläuft und die Suche für jeden Suchwert ausführt.