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

Forumthread: Summewenn über mehrere Tabellenblätter

Summewenn über mehrere Tabellenblätter
15.07.2013 14:07:00
Stöff
Hallo,
Ich habe in einem File diverse Rezepte (alle sind identisch aufgebaut). Nun möchte ich einen Zusammenzug über alle Zutatenmengen machen. Wenn es nur eine Tabelle betrifft, so wäre die Funktion
=SUMMEWENN('Schwarzwäldertorte'!C:C;Zusammenfassung!A15;'Schwarzwäldertorte'!Q:Q)
nun muss ich aber wissen, wie viel Mehl ich für alle Rezepte benötige
Ich denke, das ist nur via VBA lösbar
Vielen Dank

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summewenn über mehrere Tabellenblätter
15.07.2013 14:44:49
Stöff
Hallo Rudi
Vielen Dank für die Antwort. Das Problem ist, dass es eine grosse Anzahl von Tabellenblättern ist (ca. 50) und es können noch weitere dazukommen. Die Eingabe der einzelnen Namen in die Formel sollte vermieden werden.
Gruß
Stöff

Anzeige
AW: Summewenn über mehrere Tabellenblätter
15.07.2013 15:08:10
Klaus
Hallo Stöff,
du kannst die Blattnamen auch in Zellen schreiben und darauf in der Formel verlinken, siehe im Excelformeln.de Beitrag:
Stehen die Blattnamen vertikal in D1:D3
Die Blattnamen selbst wiederum kannst du auch automatisch in den Zellen auflisten, schau mal hier
https://www.herber.de/forum/messages/1322436.html
(musst du nur leicht abändern).
Für mich klingt das, was du vorhast, nach einer VBA-Aufgabe. Dann währs ganz einfach:
for each wks in worksheets.count
if not wks.name = "Inhalt" then
Mehl = Mehl + Worksheetfunction.Sumif(wks.columns(1),"Mehl",wks.columns(2))
end if
next wks
msgbox mehl

und würd auch bei 100 neuen Tabellenblättern noch funktionieren.
Grüße,
Klaus M.vdT.

Anzeige
AW: Summewenn über mehrere Tabellenblätter
15.07.2013 15:33:29
Stöff
Hallo Klaus
das VBA ist mir irgendwie sympathischer. Nun möchte ich aber nicht nur die Menge für das Mehl (habe die Aufgabe nicht ausführlich genug geschrieben) sondern die einzelnen Mengen für alle Zutaten haben. (Ich habe in der Zusammenfassung alle möglichen Zutaten inkl. Preis aufgelistet und in den Rezepturen via Index/Vergleich verknüpft.
Wie muss in diesem Fall das VBA Aussehen?
Gruß Stöff

Anzeige
AW: Summewenn über mehrere Tabellenblätter
15.07.2013 15:44:41
Rudi
Hallo,
Function SummeZutat(strZutat As String, SpalteZutat, SpalteMenge)
Dim wks As Worksheet
For Each wks In Worksheets
If Not wks Is Application.Caller.Parent Then
SummeZutat = SummeZutat + _
WorksheetFunction.SumIf(wks.Columns(SpalteZutat), strZutat, wks.Columns(SpalteMenge))
End If
Next
End Function

In der Tabelle:
=summezutat(A4;"A";"B")
oder
=summezutat(A4;1;2)
Gruß
Rudi

Anzeige
AW: Summewenn über mehrere Tabellenblätter
15.07.2013 16:13:22
Stöff
Hallo Rudi
Vielen Dank
Gruß Stöff

Forumthreads zu verwandten Themen

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

Summewenn über mehrere Tabellenblätter


Schritt-für-Schritt-Anleitung

Um die Funktion SUMMEWENN über mehrere Tabellenblätter in Excel zu verwenden, gehe wie folgt vor:

  1. Tabellenblätter vorbereiten: Stelle sicher, dass alle relevanten Tabellenblätter identisch strukturiert sind und die Daten, die du summieren möchtest, in den gleichen Spalten stehen.

  2. Blattnamen in Zellen auflisten: Trage die Namen der Tabellenblätter in eine separate Liste in einer Zelle ein, z.B. in den Zellen D1:D50.

  3. Verwende die Formel: Da SUMMEWENN nicht direkt über mehrere Tabellenblätter funktioniert, kannst du den folgenden Ansatz verwenden:

    =SUMMEWENN(INDIREKT("'" & D1 & "'!C:C"); "Mehl"; INDIREKT("'" & D1 & "'!Q:Q"))

    Diese Formel summiert die Werte für "Mehl" aus dem jeweiligen Tabellenblatt, dessen Name in D1 steht.

  4. Erweiterung für mehrere Blätter: Für alle Blätter kannst du eine Matrix-Formel oder VBA verwenden. Im VBA kannst du die Funktion SummeZutat verwenden, um die Werte für alle Zutaten zu summieren.


Häufige Fehler und Lösungen

  • Fehler: #NAME?: Dies passiert oft, wenn die Blattnamen nicht korrekt sind oder die Funktion INDIREKT nicht funktioniert, weil das Zielblatt nicht existiert.

    • Lösung: Überprüfe die Namen der Tabellenblätter und die Schreibweise in der Liste.
  • Problem mit großen Datenmengen: Wenn du eine große Anzahl von Tabellenblättern hast und manuell die Blattnamen eingeben musst, kann das unpraktisch sein.

    • Lösung: Nutze VBA, um die Blattnamen automatisch zu iterieren.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du die SUMMEWENN-Formel für jedes Tabellenblatt manuell aufrufen und die Ergebnisse zusammenfassen:

=SUMMEWENN('Tabelle1'!C:C; "Mehl"; 'Tabelle1'!Q:Q) + SUMMEWENN('Tabelle2'!C:C; "Mehl"; 'Tabelle2'!Q:Q) + ... 

Das kann jedoch bei vielen Blättern schnell unübersichtlich werden.


Praktische Beispiele

  1. Summieren von Mehl über 50 Tabellenblätter:

    Function SummeZutat(strZutat As String, SpalteZutat, SpalteMenge)
    Dim wks As Worksheet
    For Each wks In Worksheets
       If Not wks Is Application.Caller.Parent Then
           SummeZutat = SummeZutat + _
           WorksheetFunction.SumIf(wks.Columns(SpalteZutat), strZutat, wks.Columns(SpalteMenge))
       End If
    Next
    End Function

    Du kannst diese Funktion in einer Zelle wie folgt aufrufen:

    =SummeZutat(A4;"A";"B")
  2. Zählen von Zutaten über mehrere Tabellenblätter: Wenn du ZÄHLENWENN über mehrere Tabellenblätter benötigst, kannst du eine ähnliche VBA-Funktion erstellen.


Tipps für Profis

  • Nutze die INDIREKT-Funktion, um dynamisch auf verschiedene Tabellenblätter zuzugreifen, aber beachte, dass sie nur funktioniert, wenn die Blätter offen sind.
  • Überlege, eine separate Zusammenfassungstabelle zu erstellen, in der du die Ergebnisse der SUMMEWENN-Funktionen zusammenführst.
  • Halte deine Blätter gut strukturiert und benenne sie einheitlich, um das Arbeiten mit SUMMEWENN und anderen Funktionen zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich die SUMMEWENN-Funktion über mehrere Tabellenblätter verwenden?
Du kannst die Blattnamen in Zellen auflisten und dann die Funktion INDIREKT verwenden oder eine VBA-Lösung implementieren.

2. Gibt es eine Möglichkeit, die Blätter automatisch zu erfassen?
Ja, du kannst VBA verwenden, um alle Blattnamen zu durchlaufen und die Werte zu summieren, ohne die Blattnamen manuell eingeben zu müssen.

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