Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Werte aus mehreren Tabellenblätter zusammenstellen

Werte aus mehreren Tabellenblätter zusammenstellen
10.06.2015 17:10:17
Adam
Hallo Zusammen,
ich habe folgende Problematik, wo ich eure Hilfe brauche:
Ich habe mehrere Tabellenblätter mit Daten und ein Ergebnis-Tabellenblatt, wo alle Daten aufgelistet werden sollen.
Dabei soll bei den Tabellenblättern mit den Daten aus einer Spalte alle Zellen mit den Wert 1 gesucht werden und der Wert der Nachbarzelle in das Ergebnis-Tabellenblatt eingefügt werden.
Die Formel soll alle Tabellenblätter durchsuchen und alle Treffer in der Ergebnistabelle auflisten.
Beispiel:
Daten-Tabelle1
Spalte1 - Spalte2
a --------- 1
b --------- 2
c --------- 3
Daten-Tabelle2
Spalte1 - Spalte2
d --------- 1
e --------- 4
f --------- 1
ErgebnisTabelle
Spalte1
a
d
f
Meine Gedanke war es auf der Basis der unteren Formel zu realisieren und dort entsprechende Verkettungen von "Wennfehler" Funktionen mehrere Tabellen abzufragen.
Leider hat es mit mehreren Tabellen nicht ohne eine Fehlermeldung funktioniert.
Ist das der richtige Ansatz oder gibt es da eine simplere Methode?
=INDEX('Tabelle1'!$A:$A;AGGREGAT(15;6;ZEILE('Tabelle1'!$B:$B)/('Tabelle1'!$B:$B=1); ZEILE('Tabelle1'!A1)))
Danke & Gruß,
Adam

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
zunächst ... und ... dann aus zwei Tabellen ...
10.06.2015 19:17:58
der
Hallo Adam,
... auch wenn derartige AGGREGAT()-Formeln keine reinen MATRIXFormeln sind, so sind sie doch welche mit MATRIXFunktionalität. Diese sind zwar schneller in der Auswertung als reine MATRIXformeln, jedoch benötigen sie trotzdem zumindest für den inneren Berechnungsteil (.../...) viel Ressourcen.
Um die Auswertung nicht gar zu sehr zu bremsen, sollte man die Auswertung auf das max. notwendigen Zeilenbereich beschränken und nicht wie bei Dir über den gesamten Zeilenbereich vornehmen lassen (dazu siehe unten stehende Formel, wo ich die Zeilenbeschränkung momentan auf 99 gesetzt habe)
Für zwei (oder dann analog für drei) Tabellenblätter könnte man das wie unten stehend aufgezeigt vornehmen. Du schreibst jedoch von "mehreren". Wie viele? Da ist es ohne VBA zweckmäßiger zunächst eine Zusammenführung der auszuwertenden Daten vorzunehmen. Das könnte man mit einfachen Zellbezügen oder auch z.B. evtl. mit Konsolidierung vornehmen (dazu sie mal hier: http://www.online-excel.de/excel/singsel.php?f=100). Anschließend wäre eine entsprechende Auswertung einfacher möglich. Evt. bietet sich aber auch gleich eine entsprechende PIVOTauswertung an.
Für nur zwei Tabellenblätter, um in Deinem aktuellen Beispiel zu bleiben, könntest Du mit folgender Formel auswerten:
=WENNFEHLER(INDEX(Tabelle1!$A:$A;AGGREGAT(15;6;ZEILE(A$1:A$99)/(Tabelle1!B$1:B$99=1);ZEILE(A1))); WENNFEHLER(INDEX(Tabelle2!$A:$A;AGGREGAT(15;6;ZEILE(A$1:A$99)/(Tabelle2!B$1:B$99=1);ZEILE(A1) -ZÄHLENWENN(Tabelle1!B:B;1)));""))
Gruß Werner
.. , - ...

Anzeige
AW: zunächst ... und ... dann
11.06.2015 09:13:52
Adam
Hallo Werner,
zunächst danke für deine Rückmeldungen.
Wie du es dargestellt hast, so hatte ich es auch davor probiert. Das funktioniert mit der ersten Tabelle1 einwandfrei. Das Problem hat sich in der Prüfung der zweiten Tabelle ergeben, wo dann die Schleife mit "Zeile()-Zählenwenn()" greifen soll. Es werden keine Werte mehr ausgegeben, weil die Zeile() bereits durch die Tabelle1 weitergezählt hat. Wenn ich die Zeile() wieder bei 1 beginnen lasse, dann ermittelt die Formel die Werte für Tabelle2. Es muss noch eine Bedingung rein, worin steht, dass wenn die Tabelle1 fertig ist, bei Tabelle2 die Zeile() wieder bei 1 anfängt.
Es handelt sich übrigens um insgesamt 3 Tabellen, die geprüft werden sollen.
Gruß,
Adam

Anzeige
kann ich so nicht nachvollziehen ...
11.06.2015 17:11:21
der
Hallo Adam,
... bei funktioniert meine Formel tadellos.
Gruß Werner
.. , - ...

AW: zunächst ... und ... dann
11.06.2015 17:07:45
Adam
Hallo Werner,
ich muss korrigieren. Deine Formel passt :)
Ich habe bei "Zählenwenn" den falschen Bereich angegeben.
Besten Dank!
Gruß,
Adam

unsere Beiträge haben sich da überschnitten owT
11.06.2015 17:12:41
der
Gruß Werner
.. , - ...

Anzeige
Doppelwerte ausschließen
15.06.2015 10:18:13
Adam
Hallo Werner,
ich will in die Formel noch eine Abfrage hinzufügen, falls der Wert bereits in der Ergebnis-Tabelle vorhanden ist, soll er den Wert überspringen.
Ich hätte eine Abfrage direkt in der Aggregat-Funktion hinzugefügt mit "/(Oder(Identisch()))".
Das scheint aber nicht zu funktionieren. Siehst du dort eine bessere Lösung?
Gruß,
Adam

Anzeige
Hinweis ...
15.06.2015 21:21:37
der
Hallo Peter,
... Heute und wahrscheinlich auch Morgen komme ich nicht dazu, es mir noch einmal anzusehen.
Da möglicherweise dann der thread im Archiv gelandet ist, solltest Du dann einen neuen aufmachen mit einem entsprechenden Hinweis im Betreff und vor allem den Link auf diesen Archivthread: https://www.herber.de/forum/archiv/1428to1432/t1430227.htm und am besten gleich mit einer kleinen Beispieldatei.
Gruß Werner
.. , - ...

Anzeige
Ergänzung ...
16.06.2015 11:59:08
der
Hallo Adam,
... zunächst sorry, für meine gestrige falsche Ansprache.
Wäre nun doch heute dazugekommen, mich Deiner Problematik anzunehmen.
Aber ich stelle fest, dass eine kleine relevante Beispieldatei Deinerseits hier hochgeladen hilfreich sein würde.
Gruß Werner
.. , - ...

Anzeige
AW: Beispieldatei
16.06.2015 13:46:30
Adam
Hallo Werner,
kein Problem wegen der Ansprache, hatte mich nur kurz gewundert wer der Peter sein soll :)
Anbei die Beispieldatei. Im Prinzip soll in der Ergebnistabelle jeder Buchstabe nur einmal aufgelistet werden. Falls dieser nochmal vorkommt, soll dieser übersprungen werden.
https://www.herber.de/bbs/user/98244.xlsx
Gruß,
Adam

Anzeige
dann zusätzlich einen VERGLEICH() integrieren ...
16.06.2015 14:24:49
der
Hallo Adam,
... so:
 A
1Ergebnis
2a
3f
4d
5g
6h
7 

Formeln der Tabelle
ZelleFormel
A2=WENNFEHLER(INDEX(Tabelle1!$A:$A;AGGREGAT(15;6;ZEILE(A$1:A$99)/(Tabelle1!B$1:B$99=1)/ISTNV(VERGLEICH(Tabelle1!A$1:A$99;A$1:A1;)); 1)); WENNFEHLER(INDEX(Tabelle2!$A:$A;AGGREGAT(15;6;ZEILE(A$1:A$99)/(Tabelle2!B$1:B$99=1)/ISTNV(VERGLEICH(Tabelle2!A$1:A$99;A$1:A1;)); 1)); ""))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Anzeige
AW: dann zusätzlich einen VERGLEICH() integrieren ...
16.06.2015 16:23:28
Adam
Nochmals Danke Werner. Deine Formel funktioniert einwandfrei.
Gruß,
Adam
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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

Werte aus mehreren Tabellenblättern zusammenstellen


Schritt-für-Schritt-Anleitung

Um Excel-Werte aus mehreren Tabellenblättern zu suchen und in einer Ergebnistabelle zusammenzustellen, kannst Du die folgenden Schritte befolgen:

  1. Tabellenblätter vorbereiten: Stelle sicher, dass alle Tabellenblätter, die Du abfragen möchtest, eine einheitliche Struktur haben. Zum Beispiel sollten die Werte, die Du suchst (z.B. 1), in einer bestimmten Spalte stehen und die dazugehörigen Werte in der Nachbarzelle.

  2. Ergebnistabelle erstellen: Erstelle ein neues Arbeitsblatt, das als Ergebnistabelle dient. Hier werden die Treffer aufgelistet.

  3. Formel eingeben: Verwende die folgende Formel, um die benötigten Werte aus mehreren Tabellenblättern zu extrahieren:

    =WENNFEHLER(INDEX(Tabelle1!$A:$A;AGGREGAT(15;6;ZEILE(Tabelle1!$B$1:$B$99)/(Tabelle1!$B$1:$B$99=1);ZEILE(A1))); 
    WENNFEHLER(INDEX(Tabelle2!$A:$A;AGGREGAT(15;6;ZEILE(Tabelle2!$B$1:$B$99)/(Tabelle2!$B$1:$B$99=1);ZEILE(A1)-ZÄHLENWENN(Tabelle1!$B$1:$B$99;1));""))

    Hierbei wird angenommen, dass Du zwei Tabellenblätter (Tabelle1 und Tabelle2) hast. Du kannst diese Formel erweitern, um mehr Tabellenblätter einzubeziehen.

  4. Datenüberprüfung: Achte darauf, dass die Bereiche in Deiner Formel korrekt sind und keine falschen Bereiche angegeben werden, um Fehler zu vermeiden.

  5. Formel nach unten ziehen: Ziehe die Formel in der Ergebnistabelle nach unten, um alle möglichen Treffer zu erfassen.


Häufige Fehler und Lösungen

  • Fehlende Werte: Wenn keine Werte angezeigt werden, überprüfe, ob die Bedingungen in Deiner Formel korrekt sind. Möglicherweise sind die Bereiche oder die Suchkriterien nicht richtig eingestellt.

  • Zu viele Zeilen: Verwende AGGREGAT(), um die Zeilenanzahl zu beschränken. Anstatt den gesamten Bereich zu durchsuchen, wähle nur die relevanten Zeilen aus.

  • Doppelte Werte: Um doppelte Werte in der Ergebnistabelle zu vermeiden, kannst Du eine zusätzliche Abfrage in die AGGREGAT()-Funktion einfügen, die überprüft, ob der Wert bereits vorhanden ist.


Alternative Methoden

Wenn Du die Daten aus mehreren Tabellenblättern auflisten möchtest, kannst Du auch VBA (Visual Basic for Applications) verwenden. Hier ein einfacher VBA-Code, um die Werte zu extrahieren:

Sub WerteZusammenstellen()
    Dim ws As Worksheet
    Dim ErgebnisBlatt As Worksheet
    Dim Zeile As Long
    Dim i As Long

    Set ErgebnisBlatt = ThisWorkbook.Worksheets("ErgebnisTabelle")
    Zeile = 1

    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ErgebnisBlatt.Name Then
            For i = 1 To ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
                If ws.Cells(i, "B").Value = 1 Then
                    ErgebnisBlatt.Cells(Zeile, 1).Value = ws.Cells(i, "A").Value
                    Zeile = Zeile + 1
                End If
            Next i
        End If
    Next ws
End Sub

Mit diesem Skript kannst Du alle Werte, die den Kriterien entsprechen, in einer Ergebnistabelle zusammenfassen.


Praktische Beispiele

Angenommen, Du hast die folgenden Daten auf zwei Tabellenblättern:

Tabelle1 Spalte1 Spalte2
a 1
b 2
c 3
Tabelle2 Spalte1 Spalte2
d 1
e 4
f 1

Die Ergebnistabelle sollte dann so aussehen:

ErgebnisTabelle Spalte1
a
d
f

Verwende die oben genannten Formeln oder den VBA-Code, um diese Werte zu extrahieren.


Tipps für Profis

  • Verwende benannte Bereiche: Um die Lesbarkeit Deiner Formeln zu verbessern, solltest Du benannte Bereiche nutzen, anstelle von direkten Zellreferenzen.

  • Pivot-Tabellen: Wenn Du eine umfassende Analyse der Daten durchführen möchtest, sind Pivot-Tabellen eine leistungsstarke Möglichkeit, um verschiedene Auswertungen über mehrere Tabellenblätter zu erstellen.

  • Datenvalidierung: Setze Datenvalidierung ein, um sicherzustellen, dass nur die gewünschten Werte in den Suchfeldern eingegeben werden.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Tabellenblätter effizient durchsuchen?
Du kannst die AGGREGAT()-Funktion nutzen, um Werte aus mehreren Tabellenblättern zu extrahieren. Achte darauf, die Bereiche korrekt festzulegen und doppelte Werte zu vermeiden.

2. Gibt es eine Möglichkeit, die Suche zu automatisieren?
Ja, indem Du VBA verwendest, kannst Du die Suche automatisieren und alle relevanten Werte aus mehreren Tabellenblättern zusammenstellen, ohne manuell Formeln einzugeben.

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