Sverweis - mehrere Tabellen durchsuchen
Hallo,
kann man mit SVerweis mehrere Tabellen durchsuchen???
Ich habe das schon im Netz gefunden...
http://www.excelformeln.de/formeln.html?welcher=233
aber irgendwie werd ich da nicht Schlau draus
MfG
Florian86
kann man mit SVerweis mehrere Tabellen durchsuchen???
Ich habe das schon im Netz gefunden...
http://www.excelformeln.de/formeln.html?welcher=233
aber irgendwie werd ich da nicht Schlau draus
MfG
Florian86
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 256193
Url: https://administrator.de/contentid/256193
Ausgedruckt am: 19.11.2024 um 13:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Florian86,
dann vielleicht aus diesem Demo-Sheet: sverweis_multiple_tables_256193.xlsx
Grüße Uwe
dann vielleicht aus diesem Demo-Sheet: sverweis_multiple_tables_256193.xlsx
Grüße Uwe
Für so viele Blätter wäre ein Makro IMHO die bessere Lösung.
Weil du es bist ausnahmsweise noch einmal ausführlich:
1. Zuerst wäre da die Formel SVERWEIS:
2. In den ersten Parameter setzen wir die Zelle ein in der der Wert steht den wir suchen
3. In den zweiten Parameter von SVerweis kommt nun eine Matrix. Diese erstellen wir mit der Formel Indirekt die einen Bezug aus einem "Text" zurückgibt den wir jetzt mit der Index-Formel zusammensetzen
Hier definieren wir als Matrix ein Array aus den Tabellennamen:
Mit dem zweiten Parameter von Index definieren wir welches Sheet aus der Matrix später als Text in die Indirekt-Formel übernommen wird. Dies machen wir mit der Formel Vergleich. Wir prüfen also nun für jedes Sheet ob in der ersten Spalte der Wert von $B$7 vorkommt. Wenn ein Wert in einem Sheet gefunden wurde wird die Vergleich-Formel zu dem Index des Sheets aufgelöst und entsprechend in das richtige Sheet in der Indirekt-Formel ausgeben. Der Sheetname wird dann mit dem String "'!A:H" zusammengesetzt der die Spalten definiert von welchen der Wert zurückgegeben werden soll.
4. Der 3 Parameter von Sverweis kennst du ja, der Index der Spalte die zurückgegeben werden soll
5. Parameter 4 = 0 also genaue Übereinstimmung ist gesucht.
Wie gesagt nutze mal die Formelauswertung, dort kannst du die Formel Schritt-Für-Schritt auflösen und siehst welche Werte Excel jeweils einsetzt.
Grüße Uwe
2. könntest du mir die Formel bissel genauer erklären
Die Methode zum verstehen ist immer gleich: Von innen nach außen auflösen. In Excel gibt es dafür auch die Formelauswertung auf dem Tab Formeln.Weil du es bist ausnahmsweise noch einmal ausführlich:
1. Zuerst wäre da die Formel SVERWEIS:
SVERWEIS(Suchkriterium; Matrix; Spaltenindex; [Bereich_Verweis])
2. In den ersten Parameter setzen wir die Zelle ein in der der Wert steht den wir suchen
$B$7
3. In den zweiten Parameter von SVerweis kommt nun eine Matrix. Diese erstellen wir mit der Formel Indirekt die einen Bezug aus einem "Text" zurückgibt den wir jetzt mit der Index-Formel zusammensetzen
INDEX(Matrix; Zeilennummer; [Spaltennummer])
Hier definieren wir als Matrix ein Array aus den Tabellennamen:
{"Daten1";"Daten100";"Daten200"
}Mit dem zweiten Parameter von Index definieren wir welches Sheet aus der Matrix später als Text in die Indirekt-Formel übernommen wird. Dies machen wir mit der Formel Vergleich. Wir prüfen also nun für jedes Sheet ob in der ersten Spalte der Wert von $B$7 vorkommt. Wenn ein Wert in einem Sheet gefunden wurde wird die Vergleich-Formel zu dem Index des Sheets aufgelöst und entsprechend in das richtige Sheet in der Indirekt-Formel ausgeben. Der Sheetname wird dann mit dem String "'!A:H" zusammengesetzt der die Spalten definiert von welchen der Wert zurückgegeben werden soll.
4. Der 3 Parameter von Sverweis kennst du ja, der Index der Spalte die zurückgegeben werden soll
5. Parameter 4 = 0 also genaue Übereinstimmung ist gesucht.
Wie gesagt nutze mal die Formelauswertung, dort kannst du die Formel Schritt-Für-Schritt auflösen und siehst welche Werte Excel jeweils einsetzt.
Grüße Uwe
Moin Florian86 und colinardo,
ja nee, nur nicht so bescheiden, das geht schon in endlicher Zeit auch mit Formeln.
Angenommen, es gäbe nicht nur Tabellenblätter "Daten1", "Daten100" und "Daten200", sondern x verschiedene im Bereich "Daten1"....bis "Daten200" (oder realistischer: im Bereich "KW1"... bis KW53")
Dann EINmalig als Zwischenergebnis berechnen und anzeigen, in welchem der x Tabellenblätter die Daten vorhanden sind, zB in dem Feld $B$8, direkt unter dem "Eingabe Suchtext"-Feld bei Uwes Lösung.
Dort dann die Formel
... und das bitte als Matrixformel eingeben (mit Ctrl-Shift-Enter abschliessen).
Dann sollte, wenn "Kiwi" das Suchwort ist und diese Daten im Blatt "Daten100" stehen--> auch "Daten100" in dieser Zelle gezeigt werden.
Egal ist (zumindest bei Excel, nicht bei Calc von LO/AOO) ,ob es auch wirklich Tabellenblätter "Daten14", Daten87", "Daten124" gibt oder nicht ... der "Nummernkreis" "Daten1"...bis "Daten200" braucht nicht vollständig als Tabellenblätter existieren.
Okay, wenn wir jetzt wissen, in welchem Tabellenbaltt die Daten für den SVerweis stehen, dann vereinfachen sich die zusammengestrunkelten SVERWEIS-Formeln in den jetzigen Zellen Daten1!B10:H10 auf ein schlankes
...in Zelle B10, das nach rechts kopiert werden kann bis in Zelle H10.
Ginge auch kürzer, aber so bleibt es noch les- und wartbar.
P.S. Das relevante Tabellenblatt EINmalig berechnen statt in jedem SVERWEIS.... das würd ich ohnehin machen, auch wenn nicht über einen "Nummernkreis" gesucht wird, sondern über namentlich angegebene Blattnamen.
Grüße
Biber
Zitat von @colinardo:
> Zitat von @Florian86:
> 1. kann ich die Tabellen auch so eingrenzen, das ich sage {Daten1:Daten200} ?
Für so viele Blätter wäre ein Makro IMHO die bessere Lösung.
> Zitat von @Florian86:
> 1. kann ich die Tabellen auch so eingrenzen, das ich sage {Daten1:Daten200} ?
Für so viele Blätter wäre ein Makro IMHO die bessere Lösung.
ja nee, nur nicht so bescheiden, das geht schon in endlicher Zeit auch mit Formeln.
Angenommen, es gäbe nicht nur Tabellenblätter "Daten1", "Daten100" und "Daten200", sondern x verschiedene im Bereich "Daten1"....bis "Daten200" (oder realistischer: im Bereich "KW1"... bis KW53")
Dann EINmalig als Zwischenergebnis berechnen und anzeigen, in welchem der x Tabellenblätter die Daten vorhanden sind, zB in dem Feld $B$8, direkt unter dem "Eingabe Suchtext"-Feld bei Uwes Lösung.
Dort dann die Formel
=INDEX("Daten"&ZEILE(A1:A200);VERGLEICH(1;(ZÄHLENWENN(INDIREKT("'Daten"&ZEILE(A1:A200)&"'!A:A");$B$7)>0)+0;0))
... und das bitte als Matrixformel eingeben (mit Ctrl-Shift-Enter abschliessen).
Dann sollte, wenn "Kiwi" das Suchwort ist und diese Daten im Blatt "Daten100" stehen--> auch "Daten100" in dieser Zelle gezeigt werden.
Egal ist (zumindest bei Excel, nicht bei Calc von LO/AOO) ,ob es auch wirklich Tabellenblätter "Daten14", Daten87", "Daten124" gibt oder nicht ... der "Nummernkreis" "Daten1"...bis "Daten200" braucht nicht vollständig als Tabellenblätter existieren.
Okay, wenn wir jetzt wissen, in welchem Tabellenbaltt die Daten für den SVerweis stehen, dann vereinfachen sich die zusammengestrunkelten SVERWEIS-Formeln in den jetzigen Zellen Daten1!B10:H10 auf ein schlankes
=SVERWEIS($B$7;INDIREKT("'"&$B$8&"'!A:H");SPALTE(B$1);0)
Ginge auch kürzer, aber so bleibt es noch les- und wartbar.
P.S. Das relevante Tabellenblatt EINmalig berechnen statt in jedem SVERWEIS.... das würd ich ohnehin machen, auch wenn nicht über einen "Nummernkreis" gesucht wird, sondern über namentlich angegebene Blattnamen.
Grüße
Biber