Wert in Matrix suchen mit Excel
Schritt-für-Schritt-Anleitung
Um einen Wert in einer Matrix in Excel zu suchen und die entsprechenden Daten auszugeben, kannst Du die folgenden Schritte befolgen:
-
Vorbereitung der Daten:
- Stelle sicher, dass Deine Daten in Spalte A und die Matrix in einem anderen Arbeitsblatt, z.B. in „Artikeltabelle“, korrekt angeordnet sind.
-
Öffne den VBA-Editor:
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
-
Erstelle ein neues Modul:
- Klicke mit der rechten Maustaste auf „VBAProject (Dein Arbeitsblatt)“ und wähle „Einfügen“ > „Modul“.
-
Füge den VBA-Code ein:
- Kopiere den folgenden VBA-Code in das Modul:
Private Sub CommandButton1_Click()
Dim PL As Worksheet
Dim AT As Worksheet
Dim A, Z, S, x, n, i, j
A = 36 'Anzahl Artikel
Z = 10 'Zeilen der Matrix
S = 9 'Spalten der Matrix
x = 1 'Anzahl der Treffer
Set PL = Sheets(1) 'Arbeitsblatt mit den Artikelnummern
Set AT = Sheets(2) 'Arbeitsblatt mit der Matrix
For n = 2 To A
x = 1
If AT.Cells(n, 1).Text <> "" Then
For i = 1 To Z
For j = 1 To S
If AT.Cells(n, 1).Text = PL.Cells(i, j).Text Then
AT.Cells(n, 1 + x) = PL.Cells(i + 1, j).Value
x = x + 1
End If
Next j
Next i
End If
Next n
End Sub
-
Führe das Makro aus:
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Füge einen Button hinzu, um das Makro auszuführen, und verlinke ihn mit
CommandButton1_Click
.
Häufige Fehler und Lösungen
-
Fehler: „Typen sind nicht kompatibel“
Lösung: Überprüfe, ob die Datentypen in der Matrix und den Suchwerten übereinstimmen (z.B. Text vs. Zahl).
-
Fehler: „Keine Werte gefunden“
Lösung: Stelle sicher, dass die Werte in Spalte A korrekt eingegeben sind und die Matrix die gesuchten Werte enthält.
-
Leere Zellen werden nicht ignoriert:
Wenn leere Zellen in der Spalte A berücksichtigt werden, wird das Programm nicht korrekt funktionieren. Der oben angegebene Code ignoriert leere Zellen.
Alternative Methoden
Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die integrierten Excel-Funktionen nutzen:
-
SVERWEIS: Diese Funktion kann verwendet werden, um Werte in einer Matrix zu suchen. Beispiel:
=SVERWEIS(A2; B1:D10; 2; FALSCH)
-
FILTER (in neueren Excel-Versionen): Damit kannst Du gezielt Werte filtern.
=FILTER(B1:D10; A2:A10 = E1)
Praktische Beispiele
Angenommen, Du hast folgende Daten in Spalte A:
A |
Artikel1 |
Artikel2 |
Artikel3 |
Und in Deiner Matrix in einem anderen Blatt:
B |
C |
D |
Artikel1 |
10€ |
15€ |
Artikel2 |
20€ |
25€ |
Artikel3 |
30€ |
35€ |
Mit dem VBA-Code wird beim Ausführen des Makros der Preis von Artikel1 unter den entsprechenden Zellen in Spalte B eingetragen.
Tipps für Profis
- Nutze Option Explicit am Anfang Deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
- Verwende Fehlerbehandlungsroutinen in Deinem VBA-Code, um unerwartete Fehler elegant zu handhaben.
- Halte Deine Matrix-Daten stets aktuell und gut strukturiert, um die Suche zu optimieren.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Treffer in einer Matrix suchen?
Der bereitgestellte VBA-Code ist bereits darauf ausgelegt, mehrere Treffer zu finden und in den entsprechenden Zellen auszugeben.
2. Kann ich den Code anpassen, um eine andere Matrix zu durchsuchen?
Ja, ändere einfach die Werte von PL
und AT
auf die gewünschten Arbeitsblätter und die Dimensionen der Matrix.
3. Funktioniert der Code in jeder Excel-Version?
Der VBA-Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen (z.B. Excel 2010 und neuer).