Zellen summieren und Ergebnis übergeben
Hallo Forum Team, bastla, und alle anderen
noch eine weitere Frage...
Ich möchte mehrere Zellen summieren und das Ergebnis übergeben.
Folgender Sachverhalt:
Ich habe eine Spalte DR, in der ein Typ steht. Es stehen aber oft mehrere gleiche Typen untereinander.
In Spalten CL bis CQ stehen die Jahresumsätze der einzelnen Jahre.
Das Ergebnis soll nur noch eine Zeile des Typs mit der Summe aller Zeilen und Spaltenabschnitte der Umsätze ergeben. (Der Rest wird später gelöscht)
1. addiere Zellen der gleichen Zeile CL bis CQ in Zwischenablage
2. schau in der nächsten Zeile in Spalte DR ob der Typ gleich ist
3a. wenn ja, springe zur nächsten Zeile und addiere Zeilen CL bis CQ zur Zwischenablage hinzu
3b. wenn nein, lösche soeben dursuchte Zeilen bis auf aktuelle und setze Ergebnis bei aktueller Zeile in DV ein.
4. wenn nein, springe eine Zeile weiter und beginne von vorne (natürlich ohne die schon fertigen Ergebnisse zu löschen)
Grüße, Gregor
P.S. Mein Excel VBA Buch kommt bald
noch eine weitere Frage...
Ich möchte mehrere Zellen summieren und das Ergebnis übergeben.
Folgender Sachverhalt:
Ich habe eine Spalte DR, in der ein Typ steht. Es stehen aber oft mehrere gleiche Typen untereinander.
In Spalten CL bis CQ stehen die Jahresumsätze der einzelnen Jahre.
Das Ergebnis soll nur noch eine Zeile des Typs mit der Summe aller Zeilen und Spaltenabschnitte der Umsätze ergeben. (Der Rest wird später gelöscht)
1. addiere Zellen der gleichen Zeile CL bis CQ in Zwischenablage
2. schau in der nächsten Zeile in Spalte DR ob der Typ gleich ist
3a. wenn ja, springe zur nächsten Zeile und addiere Zeilen CL bis CQ zur Zwischenablage hinzu
3b. wenn nein, lösche soeben dursuchte Zeilen bis auf aktuelle und setze Ergebnis bei aktueller Zeile in DV ein.
4. wenn nein, springe eine Zeile weiter und beginne von vorne (natürlich ohne die schon fertigen Ergebnisse zu löschen)
Grüße, Gregor
P.S. Mein Excel VBA Buch kommt bald
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82780
Url: https://administrator.de/forum/zellen-summieren-und-ergebnis-uebergeben-82780.html
Ausgedruckt am: 21.02.2025 um 18:02 Uhr
7 Kommentare
Neuester Kommentar
Hallo Shaggy84!
Eigentlich lässt sich diese Aufgabe relativ einfach auch ohne VBA lösen (hier gezeigt für Excel 2003):
Falls Du noch keine Liste der verschiedenen Typen hast, kannst Du diese erzeugen, indem Du die Spalte DR markierst, "Daten / Filter / Spezialfilter"und dort die Optionen "An eine andere Stelle kopieren" und "Keine Duplikate" wählst sowie für "Kopieren nach:" die erste Zelle einer freien Spalte (im selben Blatt) - für das Beispiel unten etwa EE2 - angibst. Die Eingabe eines Kriteriums entfällt, da Du ja alle "Typ"-Einträge benötigst.
Sobald es diese Liste gibt, kannst Du mit SUMMEWENN() die Werte jeweils einer Spalte und mit einer einfachen Summenformel diese Spaltensummen zusammenfassen.
Beispiel: Wenn Deine Typen ab EE2 aufgelistet wären (und die Daten in CL2:CQ999 stünden), könntest Du folgende Formel in EG2 eingeben und entsprechend nach unten und nach rechts kopieren:
Damit hättest du schon einmal die Zeilen zusammengefasst. Dann noch in EF2 (und per AutoAusfüllen in den Zellen darunter) eine einfache Summenformel
und die Spalten EE und EF enthielten die von Dir gewünschte Zuordnung "Typ / Gesamtsumme für Typ".
[Edit] Als Ergänzung: Wenn Du mit den Ergebnissen zufrieden bist, kannst du diese kopieren und über "Inhalte einfügen... / Werte" von den ursprünglichen Daten unabhängig machen, sodass diese dann tatsächlich gelöscht werden könnten. [/Edit]
Grüße
bastla
Eigentlich lässt sich diese Aufgabe relativ einfach auch ohne VBA lösen (hier gezeigt für Excel 2003):
Falls Du noch keine Liste der verschiedenen Typen hast, kannst Du diese erzeugen, indem Du die Spalte DR markierst, "Daten / Filter / Spezialfilter"und dort die Optionen "An eine andere Stelle kopieren" und "Keine Duplikate" wählst sowie für "Kopieren nach:" die erste Zelle einer freien Spalte (im selben Blatt) - für das Beispiel unten etwa EE2 - angibst. Die Eingabe eines Kriteriums entfällt, da Du ja alle "Typ"-Einträge benötigst.
Sobald es diese Liste gibt, kannst Du mit SUMMEWENN() die Werte jeweils einer Spalte und mit einer einfachen Summenformel diese Spaltensummen zusammenfassen.
Beispiel: Wenn Deine Typen ab EE2 aufgelistet wären (und die Daten in CL2:CQ999 stünden), könntest Du folgende Formel in EG2 eingeben und entsprechend nach unten und nach rechts kopieren:
=SUMMEWENN($DR$2:$DR$999;$EE2;CL$2:CL$999)
=SUMME(EG2:EL2)
[Edit] Als Ergänzung: Wenn Du mit den Ergebnissen zufrieden bist, kannst du diese kopieren und über "Inhalte einfügen... / Werte" von den ursprünglichen Daten unabhängig machen, sodass diese dann tatsächlich gelöscht werden könnten. [/Edit]
Grüße
bastla
Hallo Shaggy!
Die Umsetzung Deines Pseudocodes sähe etwa so aus:

Grüße
bastla
Die Umsetzung Deines Pseudocodes sähe etwa so aus:
Sub Zusammenfassen()
Const ZeileVon = 2
Const TypSpalte = "DR"
Const SummenSpalte = "DV"
Const DatenSpalteVon = "CL"
Const DatenSpalteBis = "CQ"
Zeile = ZeileVon
DatenSpalteVonNr = Columns(DatenSpalteVon).Column 'Spaltennummer ermitteln (für Schleife)
DatenSpalteBisNr = Columns(DatenSpalteBis).Column 'Spaltennummer ermitteln (für Schleife
Do While Cells(Zeile, TypSpalte).Value <> ""
For i = DatenSpalteVonNr To DatenSpalteBisNr
Summe = Summe + Cells(Zeile, i).Value
Next
If Cells(Zeile, TypSpalte).Value <> Cells(Zeile + 1, TypSpalte).Value Then
Cells(Zeile, SummenSpalte).Value = Summe
Summe = 0
Zeile = Zeile + 1
Else
Rows(Zeile).Delete
End If
Loop
End Sub
... damit ich net dauernd was posten (und deine Zeit in Anspruch nehmen) muss ...
Solange Du Zeit hast, auf eine Antwort zu warten ... Grüße
bastla