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

Forumthread: Summieren abhängig von Wert in anderer Spalte

Summieren abhängig von Wert in anderer Spalte
03.09.2014 17:01:25
Wert
Hallo,
ich suche eine Möglichkeit die Summe einer Spalte zu bilden solange der Wert in einer anderen Spalte gleich bleibt. Diese Summe würde ich dann gerne in ein anderes Tabellenblatt schreiben mit dem dazugehörigen Wert von dem die Summe abhängig ist.
Z.B.
Spalte A Spalte B
A 2
A 1
B 5
B 2
B 3
C 7
In einem neues Tabellenblatt soll dann stehen
A 3
B 10
C 7
Ich habe folgenden Code gefunden, der auch funktionert.
Option Explicit
Public Sub WelcheSumme()
Dim myDict   As Object     ' das Scripting.Dictionary Object
Dim WkSh     As Worksheet  ' das jeweils zu bearbeitende Tabellenblatt
Dim lLetzte  As Long       ' die letzte belegte Zeile gemäß Spalte A
Dim vTemp    As Variant    ' ein temporärer Array zur Aufnahme der Eingabe-Daten
Dim iIndx    As Integer    ' der Index zum Array
Dim sGruppe  As String     ' der Gruppenbegriff aus Spalte A
Dim rZelle   As Range      ' die erste Ausgabezelle
Set myDict = CreateObject("Scripting.Dictionary")
Set WkSh = ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
lLetzte = WkSh.Cells(Rows.Count, 1).End(xlUp).Row
'     die Eingabe-Werte in ein Array speichern
vTemp = WkSh.Range("A2:B" & lLetzte) ' ab Zeile 2 übernehmen!
'     den Array abarbeiten
For iIndx = LBound(vTemp) To UBound(vTemp)
If Trim$(vTemp(iIndx, 1))  "" Then  ' ist die Zelle gefüllt?
sGruppe = vTemp(iIndx, 1)   ' den Gruppenbegriff speichern
End If
'          in's Dictionary übernehmen und zählen
myDict(sGruppe) = myDict(sGruppe) + vTemp(iIndx, 2)
Next iIndx
'     ausgeben der per Dictionary gesammelten Daten
Set WkSh = ThisWorkbook.Worksheets("Tabelle2") ' den Tabellenblattnamen ggf. anpassen!
WkSh.Range("A2:B" & lLetzte).ClearContents ' den Ausgabe-Bereich leeren/löschen
Set rZelle = WkSh.Range("A2")      ' den Ausgabe-Bereich festlegen
rZelle.Resize(myDict.Count) = WorksheetFunction.Transpose(myDict.Keys)
rZelle.Offset(0, 1).Resize(myDict.Count) = WorksheetFunction.Transpose(myDict.Items)
Set myDict = Nothing ' die Ressourcen freigeben
Set WkSh = Nothing
End Sub
Quelle: http://www.office-loesung.de/ftopic499387_0_0_asc.php
Leider kann ich in dem Forum zur Zeit nicht schreiben, da das Forum down ist.
Der Code ist mir etwas zu komplex, jedenfalls bin ich nicht in der Lage in auf meine Bedürfnisse passend zu ändern.
Es fängt schon damit an, das ich nicht in Reihe 2 sondern 5 beginnen möchte.
Und ich keine zwei benachbarten Spalten habe sondern der zu summierende Wert in Q und der Wert mit der Abhängigkeit in Spalte G steht.
Ich verstehe leider einfach die Befehle nicht.
So z.B. verstehe ich nicht was mir die Zahl in diesem Code genau sagt.
vTemp(iIndx, 2)
Unabhängig davon das ich die ganze Funktion des Codes nicht verstehe.
Ursprünglich hatte ich an eine Schleife als Lösung gedacht.
Die erkennt ob sich der Wert ändert, dies dann als Startpunkt in eine Variable schreibt und dann sucht wo die nächste Änderung stattfindet und dies dann als Endpunkt in einer Variable schreibt.
So das ich dann eine Summe über den Bereich bilden kann und diese dann ausgebe.
Aber auch da finde ich irgenwie keinen Anfang dies umzusetzen.
Gruß
Markus

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summieren abhängig von Wert in anderer Spalte
03.09.2014 17:19:38
Wert
Hi,
Du brauchst nur die Standardfunktion SUMMEWENN.
Ggfls. musst Du im 2. Tabellenblatt noch die Unikate aus Spalte A mit dem Spezialfilter untereinander bringen. Aber daneben kannst Du dann schlicht mit SUMMEWENN arbeiten.
VG, Boris

AW: Summieren abhängig von Wert in anderer Spalte
03.09.2014 21:30:02
Wert
Danke.
Ich bin auf die einfachste Lösung gar nicht erst gekommen, da ich sie bis dato nicht kannte.
Und zwar geht es mit einer Pivot Tabelle bestens und noch dazu extrem einfach.
Anzeige
;

Forumthreads zu verwandten Themen

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

Summieren abhängig von Wert in anderer Spalte


Schritt-für-Schritt-Anleitung

Um eine Summe in Excel zu bilden, die von einem Wert in einer anderen Spalte abhängt, kannst Du die Funktion SUMMEWENN verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Daten vorbereiten: Stelle sicher, dass Deine Daten in zwei Spalten organisiert sind. Zum Beispiel:

    Spalte G (Wert) | Spalte Q (Zu summierender Wert)
    -----------------|-------------------------------
    A                | 2
    A                | 1
    B                | 5
    B                | 2
    B                | 3
    C                | 7
  2. Ein neues Tabellenblatt erstellen: Gehe zu einem neuen Tabellenblatt, wo Du die Ergebnisse platzieren möchtest.

  3. Einfügen der SUMMEWENN-Formel: In die Zelle, wo das Ergebnis für Wert A erscheinen soll, gebe folgende Formel ein:

    =SUMMEWENN(G:G, "A", Q:Q)

    Dies summiert alle Werte in Spalte Q, wenn der Wert in Spalte G "A" ist.

  4. Ergebnisse für andere Werte hinzufügen: Wiederhole diesen Schritt für "B" und "C", indem Du die Formel entsprechend anpasst:

    =SUMMEWENN(G:G, "B", Q:Q)
    =SUMMEWENN(G:G, "C", Q:Q)
  5. Pivot Table nutzen (optional): Um die Summe für mehrere Werte auf einmal zu berechnen, kannst Du auch eine Pivot-Tabelle verwenden. Füge Deine Daten hinzu und ziehe Spalte G in den Zeilenbereich und Spalte Q in den Wertebereich.


Häufige Fehler und Lösungen

  • Fehler: #NAME?
    Lösung: Überprüfe, ob Du die Formel korrekt eingegeben hast, und stelle sicher, dass Du die richtigen Spaltennamen verwendest.

  • Fehler: Falsche Summe
    Lösung: Achte darauf, dass die Werte in der richtigen Spalte stehen und die Formel die korrekten Bereiche referenziert.

  • Problem: Pivot-Tabelle aktualisiert sich nicht
    Lösung: Stelle sicher, dass Du die Pivot-Tabelle aktualisierst, nachdem Du neue Daten hinzugefügt hast. Rechtsklick auf die Pivot-Tabelle und „Aktualisieren“ wählen.


Alternative Methoden

  1. SUMMEWENNS: Wenn Du mehrere Bedingungen hast, kannst Du die Funktion SUMMEWENNS verwenden. Diese erlaubt es Dir, mehrere Kriterien anzugeben.

    =SUMMEWENNS(Q:Q, G:G, "A", G:G, "B")
  2. Formel mit WENN: Eine andere Möglichkeit ist, die WENN-Funktion zu kombinieren:

    =WENN(G2="A", Q2, 0)

    Dies kannst Du für eine gesamte Spalte anwenden und dann die Summe bilden.


Praktische Beispiele

  • Beispiel 1: Wenn Du die Summe aller Werte in Spalte Q für "A" und "B" ermitteln möchtest, schreibe:

    =SUMMEWENN(G:G,"A",Q:Q) + SUMMEWENN(G:G,"B",Q:Q)
  • Beispiel 2: Für eine Pivot-Tabelle:

    1. Daten auswählen und auf „Einfügen“ -> „PivotTable“ klicken.
    2. Spalte G zu den Zeilen und Spalte Q zu den Werten ziehen.
    3. Die Pivot-Tabelle zeigt automatisch die Summen für jeden Wert in Spalte G an.

Tipps für Profis

  • Nutze die Funktion Daten filtern, um schnell verschiedene Werte zu aggregieren, ohne die Formeln manuell anpassen zu müssen.
  • Überlege Dir, mit benannten Bereichen zu arbeiten, um Deine Formeln übersichtlicher zu gestalten.
  • Wenn Du regelmäßig mit großen Datenmengen arbeitest, kann eine Power Query-Abfrage hilfreich sein, um die Daten vor der Analyse zu transformieren.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bedingungen in der SUMMEWENN-Funktion berücksichtigen?
Du kannst die Funktion SUMMEWENNS verwenden, um mehrere Kriterien in unterschiedlichen Spalten zu prüfen.

2. Was ist der Unterschied zwischen SUMMEWENN und SUMMEWENNS?
SUMMEWENN ermöglicht es Dir, eine Summe basierend auf einem einzelnen Kriterium zu bilden, während SUMMEWENNS mehrere Kriterien unterstützt.

3. Wie beginne ich in einer bestimmten Zeile mit der Summierung?
Um in einer bestimmten Zeile zu beginnen, passe einfach den Zellbereich in Deiner Formel an, z.B. =SUMMEWENN(G5:G100, "A", Q5:Q100).

4. Kann ich die SUMMEWENN-Funktion mit Text verwenden?
Ja, die Funktion funktioniert auch mit Textwerten. Stelle sicher, dass Du die richtigen Anführungszeichen verwendest.

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