Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Rückgabe einer Matrix mittels SVERWEIS

Rückgabe einer Matrix mittels SVERWEIS
15.02.2005 08:22:15
Micha
Hallo...
Gibt es eine Möglichkeit (mit oder ohne SVERWEIS) nach einem Suchkriterium in einer Tabelle zu suchen und dann bei Übereinstimmung die gesamt Zeile in eine andere Tabelle zu übernehmen?
Bisher übernehme ich schrittweise für jede Spalte gesondert die Werte mit SVERWEIS in die 2. Tabelle, indem ich einfach den Spaltenindex um jeweils 1 erhöhe. Leider klappt dies nur, wenn die genaue Spaltenanzahl (die eine Zeile in Tabelle 1 ausmacht) bekannt ist und wenn das Suchkriterium nicht doppelt vorkommt.
Bin gerade dabei mich mit VBA anzufreunden, jedoch bis man solche Aufgaben lösen kann, vergeht wohl noch ein bisschen Zeit.
Wer kennt dafür ne praktikable Lösung?
Vielen Dank
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Auto- oder Spezialfilter?
Günther
Hallo Micha
filtere die Tabelle über den Autofilter,
Tabelle markieren - kopieren in neue Tabelle einfügen
(die 2. Zeile evtl. als Makro aufzeichnen und in die Symbolleiste integrieren)
Günther
AW: Auto- oder Spezialfilter?
15.02.2005 15:41:03
Micha
Hallo Günther...
Das ist gut. Wäre ich so sicher nicht drauf gekommen.
Mein Ziel ist es, bei einer Eintragung in Tablle 2 automatisch nach diesem Eintrag in Tabelle 1 zu suchen und anschließend die gesamte Zeile in die Tab 2 zu übernehmen.
Vielen Dank
Anzeige
ginge auch mit Formeln
Günther
Hallo Micha
Du brauchts in Tabelle2 auf jeden Fall eine Hilfsspalte (damit die Formeln nicht zu unübersichtlich werden, und sich die Berechnungszeit in Grenzen hält)
wenn Du in Tabelle2 B1 den Suchbegriff eingeben willst
in Tabelle2 "Hilfsspalte" A1:
{=kkleinste(wenn(Tabelle1!A$1:A$1000=B1;Zeile(A$1:A$1000));Zeile())}
(ARRAY-Formel: die geschweifte Klammer nicht eingeben, sondern die Formeleingabe abschließen mit Strg+Umsch+Enter
diese Formel nach unten ziehen. Als Ergebnis erhälst Du die Zeilen, in denen der Suchbegriff aus Tabelle2!B1 in Tabelle1 vorkommt.
nun in Tabelle2 mit
=wenn(istfehler($A1);"";wenn(Indirekt("Tabelle1!A"&$A1))="";"";Indirekt("Tabelle1!A"&$A1))) die Spalte A aus Tabelle1 auslesen
mit =wenn(istfehler($A1);"";wenn(Indirekt("Tabelle1!D"&$A1))="";"";Indirekt("Tabelle1!D"&$A1))) die Spalte D aus Tabelle1 auslesen
...
Diese Formel müsstest Du für jede Spalte die gefüllt sein könnte eingeben - deshalb sehr aufwendig.
Günther
Anzeige
AW: ginge auch mit Formeln
16.02.2005 13:18:52
Micha
Hallo Günther
Vielen Dank für die Mühe.. sehr aufwendig das mit Formeln zu lösen.
Werde mal versuchen die Problematik schrittweise anzugehen und mit VBA umzusetzen.
Ist wohl die geeignetere Methode solche weitreichenden Automatisierungsgeschichten zu verwirklichen.
Gruss
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Rückgabe einer Matrix mittels SVERWEIS optimieren


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der Tabellen: Stelle sicher, dass die Daten in Tabelle 1 gut strukturiert sind. Deine gesuchte Information sollte in einer Spalte stehen, und die zu übertragenden Daten sollten in der gleichen Zeile vorhanden sein.

  2. Hilfsspalte in Tabelle 2 einfügen: Gehe zu Tabelle 2 und füge eine Hilfsspalte ein, um die Indizes der gesuchten Werte zu speichern. Gebe in Zelle A1 der Hilfsspalte folgende Array-Formel ein:

    {=KKLEINSTE(WENN(Tabelle1!A$1:A$1000=B1;ZEILE(A$1:A$1000));ZEILE())}

    Drücke Strg + Umschalt + Enter, um die Formel als Array-Formel zu aktivieren.

  3. Formeln für die Rückgabematrix: Verwende die Hilfsspalte, um die gewünschten Werte aus Tabelle 1 zurückzugeben. In Tabelle 2 kannst du für die Spalte A folgende Formel verwenden:

    =WENN(ISTFEHLER($A1); ""; WENN(INDIREKT("Tabelle1!A"&$A1)=""; ""; INDIREKT("Tabelle1!A"&$A1)))

    Passe die Formel für jede weitere Spalte entsprechend an.

  4. Formel nach unten ziehen: Ziehe die Formeln nach unten, um die Werte für alle relevanten Zeilen zu extrahieren.


Häufige Fehler und Lösungen

  • Fehler bei der Formel: Wenn du eine Fehlermeldung erhältst, überprüfe, ob du Strg + Umschalt + Enter verwendet hast, um die Array-Formel einzugeben.

  • Doppelte Suchkriterien: Wenn dein Suchkriterium mehrmals in Tabelle 1 vorkommt, kann es sein, dass nur der erste Treffer zurückgegeben wird. Um mehrere Werte zurückzugeben, benötigst du eine komplexere Formel oder VBA.

  • Falsche Referenzen: Achte darauf, dass alle Zellreferenzen korrekt sind und keine Leerzeichen oder falschen Zeichen enthalten.


Alternative Methoden

Eine weitere Methode, um mehrere Werte aus einer Matrix zurückzugeben, ist die Verwendung von VBA. Mit einem einfachen VBA-Skript kannst du die Daten automatisiert extrahieren, ohne jede Spalte manuell zu bearbeiten.

Hier ein einfaches Beispiel eines VBA-Codes:

Sub RückgabeMatrix()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Set ws1 = ThisWorkbook.Sheets("Tabelle1")
    Set ws2 = ThisWorkbook.Sheets("Tabelle2")

    Dim lastRow As Long, i As Long, j As Long
    lastRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row

    For i = 1 To lastRow
        If ws1.Cells(i, 1).Value = ws2.Cells(1, 1).Value Then
            For j = 1 To ws1.Columns.Count
                ws2.Cells(2, j).Value = ws1.Cells(i, j).Value
            Next j
        End If
    Next i
End Sub

Praktische Beispiele

Angenommen, du hast folgende Daten in Tabelle 1:

A B C
Name Alter Stadt
Max 25 Berlin
Lisa 30 München
Tom 28 Köln

Wenn du in Tabelle 2 den Namen "Max" eingibst, kannst du die obigen Formeln verwenden, um alle Daten von Max in Tabelle 2 zu extrahieren.


Tipps für Profis

  • Vermeide unnötige Berechnungen: Halte deine Formeln so einfach wie möglich. Verwende Hilfsspalten, um die Berechnungszeit zu reduzieren.
  • Nutze die Filterfunktion: Oft kann die Verwendung des Autofilters schneller und einfacher sein, um die gewünschten Daten zu extrahieren.
  • VBA für Automatisierung: Wenn du häufig ähnliche Aufgaben hast, kann das Erstellen eines VBA-Skripts extrem zeitsparend sein.

FAQ: Häufige Fragen

1. Kann ich SVERWEIS verwenden, um mehrere Spalten zurückzugeben?
Nein, SVERWEIS gibt nur einen Wert aus einer Spalte zurück. Verwende stattdessen Kombinationen von INDEX und VERGLEICH oder VBA für mehrere Rückgaben.

2. Wie viele Werte kann ich mit einer Formel zurückgeben?
Mit einer einzelnen Formel kannst du nur einen Wert zurückgeben. Um mehrere Werte zurückzugeben, musst du mehrere Formeln verwenden oder auf VBA zurückgreifen.

3. Was mache ich, wenn mein Suchkriterium doppelt vorkommt?
In diesem Fall musst du eine Methode wählen, die dazu in der Lage ist, alle Instanzen zu erfassen, wie z.B. eine Array-Formel oder ein VBA-Skript.

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