Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summewenn über mehrere Tabellen

Summewenn über mehrere Tabellen
Andre
Hallo zusammen,
in den Recherchen kann ich leider nicht direkt etwas finden.
Ich verwende die Formel SUMMEWENN über mehrere Tabellen. So weit so gut.
Allerdings habe ich 30 Dateien, in denen die erste Tabelle und die letzte Tabelle jeweils Tabelle1 und Tabelle5 heißen. Aber die Tabellen dazwischen, haben bei den 30 Dateien unterschiedliche Bezeichnungen
1. Datei: Tabelle1, Fritz, Hans, Tabelle5
2. Datei: Tabelle1, Otto, Thedodor, Ludwig, Tabelle5
Jetzt brauche ich in jeder Datei eine Summentabellen, die von Tabelle1 bis Tabelle5 die Summe zeigt, wenn in den Tabellen1-5 in der Spalte A das Suchkriterium mehrmals vorkommt und in Spalte B die Werte, die addiert werden sollen.
Ist das verständlich?
https://www.herber.de/bbs/user/76016.xls
Vielen Dank für Eure Bemühungen
Gruß
André

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

Betreff
Benutzer
Anzeige
AW: Summewenn über mehrere Tabellen
04.08.2011 08:39:47
Peter
Moin André,
hier ein Vorschlag von mir (in B3 in TB Summe):
=SUMMEWENN(Tabelle1!A3:A5;Summe!A3;Tabelle1!B3:B5)+SUMMEWENN(Fritz!A3:A5;Summe!A3;Fritz!B3:B5) + ....
Musst du dann halt noch anpassen.
Bestimmt gibt`s da noch was besseres, deswegen lass ich die Frage mal offen...
Gruß,
Peter
AW: Summewenn über mehrere Tabellen
04.08.2011 08:43:34
Andre
Hallo Peter,
das Problem ist, dass ich in 30 Dateien die Formeln anpassen müsste, da ja die Tabellennamen ab der zweiten Tabelle bis zur vorletzten unterschiedlich sind. Und oft gibt es 5 Tabellen aber auch 6, 7, 8 oder mehr. Nur die erste und die letzte haben in allen Dateien den gleichen Namen.
Danke trotzdem schon mal. Vielleicht hat noch jemand einen Tipp.
Gruß
André
Anzeige
AW: Summewenn über mehrere Tabellen
04.08.2011 09:36:07
Henrik
Hallo Peter,
hier eine Möglichkeit.
VBA-Editor öffnen -> Rechtsklick auf deine Arbeitsmappe -> Einfügen Modul -> Code einfügen
Option Explicit
Public Function SummeSuchbegriff(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "Summe" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeSuchbegriff = SummeSuchbegriff + Bereich(zae1, 1).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function

Jetz kannst du es wie eine Formel auf dem Arbeitsblatt"Summe" verwenden.
C3=SummeSuchbegriff(A3)
C1=SummeSuchbegriff(A4)
...usw.
Es wird der Bereich ("A3:A100") auf sämtlichen Arbeitsblätter der Arbeitsmappe ( bis auf "Summe") addiert, wenn Suchbegriff passt.
Gruß Henrik
Anzeige
AW: Summewenn über mehrere Tabellen
04.08.2011 09:47:36
Andre
Hallo Henrik,
sieht schon sehr gut aus. Kannst Du mir noch sagen, wie ich es anstelle, wenn ich in den einzelnen Tabellen Monatsspalten habe.
Sprich Spalte B = Januar, Spalte C=Februar, bis Spalte M = Dezember. Jetzt soll auf dem Summenblatt auch noch Spalte B mit der jeweiligen Spalte aus den Tabellen 1 - 5 addiert werden. Gleiches mit Spalte C, D bis M
Gruß
André
?
04.08.2011 09:58:48
Henrik
Hallo Andre,
möchtest du die Summe für jeden Monat ausgewiesen haben oder die Summe über alle Monate über alle Tabellenblätter wenn Suchbegriff übereinstimmt?
Ich verstehe deine Anforderung leider nicht.
Lade doch einfach die entsprechende Datei (abgespeckt) hoch, dann weiß auch jeder was du möchtest.
Gruß Henrik
Anzeige
AW: ?
04.08.2011 10:34:16
Andre
Hallo,
Habs jetzt so gelöst.
Für jeden Monat einen Suchbegriff. Aber wenn ich die Daten verändere, muss ich in jede Zeile im Summenblatt gehen und mit F2 anklicken und Enter drücken damit sich der Wert ändert. Kann man auch die Berechnung erzwingen?
--------------------------------------------------------

Public Function SummeJan(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeJan = SummeJan + Bereich(zae1, 4).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeFeb(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeFeb = SummeFeb + Bereich(zae1, 5).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeMär(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeMär = SummeMär + Bereich(zae1, 6).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeApr(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeApr = SummeApr + Bereich(zae1, 7).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function

Public Function SummeMai(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeMai = SummeMai + Bereich(zae1, 8).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeJun(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeJun = SummeJun + Bereich(zae1, 9).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeJul(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeJul = SummeJul + Bereich(zae1, 10).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeAug(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeAug = SummeAug + Bereich(zae1, 11).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeSep(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeSep = SummeSep + Bereich(zae1, 12).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeOkt(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeOkt = SummeOkt + Bereich(zae1, 13).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeNov(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeNov = SummeNov + Bereich(zae1, 14).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function
Public Function SummeDez(Suchbegriff As Long)
Dim wks As Worksheet, Bereich As Range, zae1 As Long
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A3:A100")
If wks.Name  "P&L Polygon" Then
For zae1 = 1 To Bereich.Rows.Count
If Bereich(zae1, 1) = Suchbegriff Then
SummeDez = SummeDez + Bereich(zae1, 15).Offset(, 1).Value
End If
Next zae1
End If
Next wks
End Function

Gruß
André
Anzeige
AW: ?
04.08.2011 10:47:01
Henrik
Hallo Andre,
oder so:
Public Function SummeSuchbegriff(Suchbegriff As Long, Monat As String)
Dim wks As Worksheet, Bereich As Range, zae1 As Long, aryMON, ZM As Integer
For Each wks In ThisWorkbook.Worksheets
Set Bereich = wks.Range("A2:M100")
aryMON = Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", _
"September", "Oktober", "November", "Dezember")
ZM = WorksheetFunction.Match(Monat, aryMON, 0)
With Bereich
If wks.Name  "Summe" Then
For zae1 = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If Bereich(zae1, 1) = Suchbegriff Then
SummeSuchbegriff = SummeSuchbegriff + Bereich(zae1, 1).Offset(, ZM).Value
End If
Next zae1
End If
End With
Next wks
End Function

"Summe" B3=summesuchbegriff($A3;B$2)
...usw
Gruß Henrik
Anzeige
AW: @Henrik
04.08.2011 11:31:50
Rudi
Hallo,
        aryMON = Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", _
"September", "Oktober", "November", "Dezember")
ZM = WorksheetFunction.Match(Monat, aryMON, 0)

Das kann man prima zu
ZM=Month(CDate("1." &Monat))
verkürzen.
Gruß
Rudi
AW: @Henrik
04.08.2011 11:37:16
Andre
Besten Dank. Es läuft einwandfrei.
Gruß
André
@Rudi: THX, wieder was gelernt :) kwT
04.08.2011 12:26:32
Henrik

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige