Werte aus Tabelle auslesen in Excel
Schritt-für-Schritt-Anleitung
Um Werte aus einer Tabelle auszulesen und in andere Tabellen zu übertragen, kannst du VBA in Excel verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:
-
Öffne Excel und erstelle ein neues Arbeitsblatt oder öffne eine bestehende Datei mit mehreren Tabellen.
-
Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Erstelle ein neues Modul:
- Klicke auf
Einfügen
> Modul
.
-
Füge den folgenden Code ein:
Sub prcStart()
GetValues "wesentlich", Sheets("Tabelle2").Cells(10, 1)
GetValues "unwesentlich", Sheets("Tabelle3").Cells(10, 1)
End Sub
Sub GetValues(strMatch As String, rngZiel As Range)
Dim vntArr(), lngCounter As Long, rngC As Range
With Sheets("Tabelle1")
ReDim vntArr(1 To Application.CountIf(.Columns(9), strMatch), 1 To 2)
For Each rngC In .Range(.Cells(10, 9), .Cells(Rows.Count, 9).End(xlUp))
If rngC = strMatch Then
lngCounter = lngCounter + 1
vntArr(lngCounter, 1) = rngC.Offset(, -8)
vntArr(lngCounter, 2) = rngC.Offset(, -7)
End If
Next
End With
rngZiel.Resize(lngCounter, 2) = vntArr
End Sub
-
Schließe den VBA-Editor und kehre zu Excel zurück.
-
Führe das Makro aus, indem du ALT + F8
drückst und prcStart
auswählst.
Nun werden die Werte aus Tabelle 1 in Tabelle 2 und 3 entsprechend der Kriterien "wesentlich" und "unwesentlich" übertragen.
Häufige Fehler und Lösungen
-
Fehler: "Das Makro konnte nicht gefunden werden."
- Überprüfe, ob du den richtigen Namen für das Makro verwendest und dass du es in einem Modul gespeichert hast.
-
Fehler: "Die Zellen sind leer."
- Stelle sicher, dass deine Daten in Tabelle 1 korrekt eingegeben sind und dass die Spalte mit den Kriterien (z.B. D) die richtigen Werte enthält.
-
Fehler: "Das Array hat eine falsche Dimension."
- Achte darauf, dass du die Anzahl der Spalten in
ReDim vntArr
entsprechend anpasst, wenn du mehr oder weniger als 2 Spalten übertragen möchtest.
Alternative Methoden
Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch Excel-Formeln nutzen:
-
Verwende die Funktion INDEX
und KKLEINSTE
für das Auslesen von Werten:
=INDEX(A$10:A$30;KKLEINSTE(WENN($D$10:$D$30="wesentlich";ZEILE($10:$30)-9;"");ZEILE(A1)))
-
Diese Formel hilft dir, Werte aus einer Tabelle auszulesen und in eine andere Tabelle zu übernehmen, ohne VBA zu verwenden. Beachte, dass du die Formel nach unten ziehen musst, um alle Ergebnisse zu erhalten.
Praktische Beispiele
Angenommen, du hast folgende Daten in Tabelle 1:
A |
B |
D |
Wert1 |
Wert2 |
wesentlich |
Wert3 |
Wert4 |
unwesentlich |
Wert5 |
Wert6 |
wesentlich |
Wenn du die oben genannten VBA-Funktionen ausführst, werden Wert1
und Wert5
in Tabelle 2 (wesentlich) und Wert3
in Tabelle 3 (unwesentlich) übertragen.
Tipps für Profis
-
Verwende dynamische Bereiche: Um die Anzahl der Datensätze flexibel zu halten, kannst du dynamische Bereiche in Excel definieren, sodass deine Formeln oder VBA-Skripte automatisch die neuen Daten erkennen.
-
Fehlersuche mit Debugging: Wenn dein VBA-Skript nicht funktioniert, setze Haltepunkte im Code, um den Fehler zu lokalisieren.
-
Dokumentation: Halte deine VBA-Codes gut dokumentiert, damit du und andere Benutzer später leichter verstehen, was der Code tut.
FAQ: Häufige Fragen
1. Wie kann ich die Werte aus einer bestimmten Spalte auslesen?
Du kannst die Zahl der Spalten in der GetValues
Funktion anpassen, indem du die Variable iColumns
änderst. Wenn du beispielsweise Spalten A-D auslesen möchtest, setze iColumns
auf 4.
2. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden und VBA-Codes sind in Excel 365 und anderen neueren Versionen kompatibel. Stelle sicher, dass Makros aktiviert sind.
3. Was mache ich, wenn ich mehr als zwei Suchkriterien habe?
Du kannst die Funktion GetValues
erweitern, um weitere Kriterien zu berücksichtigen, indem du zusätzliche Parameter hinzufügst und die Logik entsprechend anpasst.