Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

SUMMEWENNS über mehrere Tabellenblätter
#1
Liebe Forumsmitglieder,

leider komme ich trotz Grübeln und Internetsuche nicht weiter...

Ich habe folgende Datei:
jeweils ein Tabellenblatt für Kostenstelle 1, Kostenstelle 2 etc.;
innerhalb dieser Blätter sind zeilenweise Kostenarten (Spalte A) mit Planwerten (Spalte AG) dargestellt;
die Nummer der Kostenstelle steht in C5.

Für einen SAP-Upload möchte ich diese Informationen nun in der gleichen Datei in einem separaten Blatt zusammenführen, d. h.
Kostenstelle 1, Kostenart 1, Wert
Kostenstelle 1, Kostenart 2, Wert
Kostenstelle 2, Kostenart 1, Wert
Kostenstelle 2, Kostenart 2, Wert
... es handelt sich übrigens um mehr als 60 Kostenstellen und 140 Kostenarten ...

Bisher habe ich folgendes ausprobiert:
Namen aller Tabellenblätter in das separate Blatt eingetragen und dieser Liste den Bereichsnamen "Blattnamen" gegeben;
einen ersten Block für Kostenstelle 1, d. h. 140 Zeilen für Kostenstelle 1 mit allen Kostenarten (diesen Block würde ich manuell für jede Kostenstelle ergänzen);
Formel
=SUMMENPRODUKT(SUMMEWENNS(INDIREKT("'"&Blattnamen&"'!AG:AG");INDIREKT("'"&Blattnamen&"'!C5");B2;INDIREKT("'"&Blattnamen&"'!A:A");H2))
eingefügt, wobei B2 die Kostenstelle und H2 die Kostenart enthält.

Leider bekomme ich damit den Fehler "#WERT!" ... wer weiß, was da schief gelaufen sein könnte?

Vielen lieben Dank vorab.

Grüße
Tatjana
Antworten Top
#2
Hola,

ich tippe mal auf Überschriften in Zeile 1 der jeweils angesprochenen Spalten.
Verwende Bereich an Stelle von ganzen Spalten.

Gruß,
steve1da
Antworten Top
#3
Hallo Smile

Ich habe mal die Formel in
=SUMMENPRODUKT(SUMMEWENNS(INDIREKT("'"&Blattnamen&"'!AG17:AG1000");INDIREKT("'"&Blattnamen&"'!C5");B2;INDIREKT("'"&Blattnamen&"'!A17:A1000");H2))
geändert - das hilft leider auch nicht.

Diese Blätter stellen jeweils die GuV einer Kostenstelle dar, sprich einzelne Kostenarten für Umsatz, Material etc. und hier wiederum Zwischensummen - kann es sein, dass Excel sich an den verbundenen Zellen bei der Bezeichnung für die Zwischensumme stört? In Spalte A steht ja die Kostenart; das Wort "Umsatzerlöse" steht quasi in A bis C.

Grüße
Tatjana
Antworten Top
#4
Hallo, ist dieser Kriterienbereich denn richtig..?


Code:
INDIREKT("'"&Blattnamen&"'!C5")
(02.12.2016, 13:54)Tatjana schrieb: Hallo Smile

... kann es sein, dass Excel sich an den verbundenen Zellen ... stört?
Grüße
Tatjana

Hallo, verundene Zellen erschweren in sller Regel Auswertungen. (Wenige) Ausnahmen bestätigen die Regel...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#5
Hallo,

vielleicht ist diese benutzerdefinierte Funktion von Thomas eine Alternative:

Code:
Public Function SummeWennSTabellen(Tab1 As String, _
                                 Tab2 As String, _
                                   Summe_Bereich As Range, _
                                   KritBereich1 As Range, _
                                   Suchkriterium1 As String, _
                                   KritBereich2 As Range, _
                                   Suchkriterium2 As String) As Variant

'© Thomas Ramel / 27.09.2010
'Funktion zur Anwendung von SUMMEWENNS() über mehrere Tabellenblätter
'Mit angegeben werden die Tabellenblattnamen von...bis,
'sowie die üblichen Parameter für SUMMEWENNS()
'Zur automatischen Aktualisierung im Tabellenblatt den folgenden Term
'anhängen: +(0*JETZT()) und F9 drücken um zu aktualisieren
'Also z.B. wie folgt: SummeWennSTabellen("Tab1";"Tab8";C1:C10;A1:A10;A1;B1:B10;B1)+(0*JETZT())

Dim intI                      As Integer
Dim intJ                      As Integer
Dim intTab                    As Integer
Dim Summe                     As Double

    If Val(Application.Version) < 12 Then
        SummeWennSTabellen = "Nur ab xl2007 einsetzbar"
        Exit Function
    End If

    If Suchkriterium1 = "" Then
        SummeWennSTabellen = 0
        Exit Function
    End If

    intI = Worksheets(Tab1).Index
    intJ = Worksheets(Tab2).Index

    For intTab = intI To intJ
        Set KritBereich1 = ActiveWorkbook.Worksheets(intTab) _
                           .Range(KritBereich1.Address)

        Set KritBereich2 = ActiveWorkbook.Worksheets(intTab) _
                           .Range(KritBereich2.Address)

        Set Summe_Bereich = ActiveWorkbook.Worksheets(intTab) _
                            .Range(Summe_Bereich.Address)

        Summe = Summe + Application.WorksheetFunction.SumIfs _
                (Summe_Bereich, KritBereich1, Suchkriterium1, KritBereich2, Suchkriterium2)

    Next intTab

    SummeWennSTabellen = Summe
End Function

Die Erläuterung zur Anwendung bzw. dem Aufbau der Formel findet sich im Kommentar des Codes:

'Funktion zur Anwendung von SUMMEWENNS() über mehrere Tabellenblätter
'Mit angegeben werden die Tabellenblattnamen von...bis,
'sowie die üblichen Parameter für SUMMEWENNS()
'Zur automatischen Aktualisierung im Tabellenblatt den folgenden Term
'anhängen: +(0*JETZT()) und F9 drücken um zu aktualisieren
'Also z.B. wie folgt: SummeWennSTabellen("Tab1";"Tab8";C1:C10;A1:A10;A1;B1:B10;B1)+(0*JETZT())
Gruß
Peter
Antworten Top
#6
Hallo Tatjana,

Zitat:Tatjana schrieb:

... kann es sein, dass Excel sich an den verbundenen Zellen ... stört? 
Grüße
Tatjana

tue Dir selber einen großen Gefallen und löse die verbundenen Zellen auf.
Du wirst damit niemals glücklich werden.
Da man als Anfänger(in) verbundene Zellen eigentlich immer nur einsetzt,
um eine gewisse Optik zu erzeugen, sei versichert, das kriegt man auch anders hin.
Verbundene Zellen machen gewöhnlich mehr Ärger als das sie Nutzen.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#7
Hallo,

erstmal danke für die Rückmeldungen Smile

Ich habe die Formel nun in
=SUMMENPRODUKT(SUMMEWENNS(INDIREKT("'"&Blattnamen&"'!AG1:AG10000");INDIREKT("'"&Blattnamen&"'!C1:C10000");B2;INDIREKT("'"&Blattnamen&"'!A1:A10000");H2))
geändert; jetzt erscheint zumindest "0,00" und nicht mehr "#WERT!".

Die Formate stimmen überein:
Kostenstelle/-art sind als Standard, der Planwert als Zahl hinterlegt (sowohl in der Übersicht als auch in den einzelnen Blättern).

Ich habe auch schon die verbundenen Zellen wieder aufgelöst und den Befehl "Text in Spalten" für die Kostenart durchlaufen lassen - ohne Erfolg Sad

Hat noch jemand eine Idee?

Vielen lieben Dank.
Tatjana
Antworten Top
#8
Hola,

dann lade doch bitte eine Beispieldatei hoch.

Gruß,
steve1da
Antworten Top
#9
Hallo,

anbei eine stark vereinfachte Beispiel-Datei - aber auch da erscheint 0   Huh


.xlsx   Test.xlsx (Größe: 12,26 KB / Downloads: 30)

Viele Grüße
Tatjana
Antworten Top
#10
Hola,

warum nennst du die Kostenstellen-Tabellen nicht genauso wie die abzufragenden Kostenstellen (also ohne Leerzeichen)? Dann ginge das so:


Code:
=SUMMEWENNS(INDIREKT(A2&"!C:C");INDIREKT(A2&"!B:B");B2)

Gruß,
steve1da
[-] Folgende(r) 1 Nutzer sagt Danke an steve1da für diesen Beitrag:
  • Tatjana
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste