Spezielle Summenbildung
 |
Betrifft: Spezielle Summenbildung
von: Frank
Geschrieben am: 18.09.2004 23:57:42
Hi Leute,
ich habe in H10-H90 Zahlen stehen, in i10-i90 zweistellige Schlüssel allerdings nicht in jeder Zeile. Das läßt sich aus bestimmten Gründen auch nicht ändern.
Es sollen eine Summe gebildet werden für die Schlüssel 1-49 lautet und eine weitere Summe für die Schlüssel 50 -99. Der jeweilige Schlüssel gilt immer bis zum nächsten Eintrag. Die Summen könnten z.B. in H3 und i3 stehen, ist aber
nicht so wichtig.
Beispiel:
100,00 1
200,00
300,00 60
400,00
400,00
400,00 20
300,00
300,00
Die Summe (1-49) sollte lauten: 1300,00, die Summe (50-99) sollte lauten: 1100,00,
Bekommt man sowas überhaupt "gebacken" ? Ich hab im Moment keinen Plan!
Gruß Frank
Betrifft: AW: Spezielle Summenbildung
von: Boris
Geschrieben am: 19.09.2004 00:06:01
Hi Frank,
ich denke, hier ist ne Hilfsspalte angebracht:
|
|
| A | B | C | D | E | F | G | 1 | | | Hilfsspalte | | Von | Bis | Summe | 2 | 100 | 1 | 1 | | 1 | 49 | 1300 | 3 | 200 | | 1 | | 50 | 99 | 1100 | 4 | 300 | 60 | 60 | | | | | 5 | 400 | | 60 | | | | | 6 | 400 | | 60 | | | | | 7 | 400 | 20 | 20 | | | | | 8 | 300 | | 20 | | | | | 9 | 300 | | 20 | | | | | Formeln der Tabelle | C2 : =WENN(B2<>"";B2;C1) G2 : =SUMMENPRODUKT((C$2:C$100>=E2)*(C$2:C$100<=F2)*A$2:A$100) C3 : =WENN(B3<>"";B3;C2) G3 : =SUMMENPRODUKT((C$2:C$100>=E3)*(C$2:C$100<=F3)*A$2:A$100) C4 : =WENN(B4<>"";B4;C3) C5 : =WENN(B5<>"";B5;C4) C6 : =WENN(B6<>"";B6;C5) C7 : =WENN(B7<>"";B7;C6) C8 : =WENN(B8<>"";B8;C7) C9 : =WENN(B9<>"";B9;C8)
|
|
|
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 3.0 Download Grüße Boris
http://www.excelformeln.de
Betrifft: AW: Spezielle Summenbildung
von: Frank
Geschrieben am: 19.09.2004 00:17:09
Hi Boris,
danke für deine Mühe. An der Struktur der Tabelle ist nicht zu rütteln, deshalb
entfällt die Möglichkeit einer Hilfsspalte. Hätte ich gleich schreiben sollen.
Ich befürchte, das wird nur mit Makro gehen, oder?
Grüße Frank
Betrifft: Hast du alle 256 Spalten belegt?
von: Boris
Geschrieben am: 19.09.2004 00:19:04
Hi Frank,
mit Verlaub: Das will ich mal nicht glauben...
Grüße Boris
Betrifft: AW: Hast du alle 256 Spalten belegt?
von: Frank
Geschrieben am: 19.09.2004 00:24:20
Hi Boris,
nein, es sind nicht alle Spalten belegt. Dennoch ist es nicht erlaubt, an der Struktur
etwas zu ändern, darauf hab ich keinen Einfluss. Sonst könnte ich ja die Schlüsselnummern
auch nach unten ausfüllen, aber selbst das ist nicht erlaubt.
Grüße Frank
Betrifft: AW: Hast du alle 256 Spalten belegt?
von: Boris
Geschrieben am: 19.09.2004 01:00:08
Hi Frank,
is schon spät - daher hier mal ne etwas umständlichere Lösung - bezogen auf Spalten A und B - Start in Zeile 2.
Option Explicit
Sub komisch()
Dim l As Long, Summe As Double
Dim von As Double, bis As Double, B As Boolean
von = 1: bis = 49
For l = 2 To [a65536].End(xlUp).Row
If Cells(l, 2) >= von And Cells(l, 2) <= bis Then
Summe = Summe + Cells(l, 1)
B = True
End If
If IsEmpty(Cells(l, 2)) Then
Summe = Summe + Cells(l, 1) * -B
End If
If Not IsEmpty(Cells(l, 2)) Then
If Cells(l, 2) < von Or Cells(l, 2) > bis Then B = False
End If
Next l
MsgBox "Summe zischen " & von & " und " & bis & ": " & Summe, , "Gebe bekannt..."
End Sub
Aber von K.Rola wirst du sicherlich noch was Besseres erhalten.
Grüße Boris
Betrifft: AW: Hast du alle 256 Spalten belegt?
von: Frank
Geschrieben am: 19.09.2004 01:08:46
Hi Boris,
super, das sieht ja schon mal gut aus. Es fehlt jetzt nur noch die Summe für die
Schlüssel von 50 bis 99.
Grüße Frank
Betrifft: Willst du mich auf den Arm nehmen?
von: Boris
Geschrieben am: 19.09.2004 01:12:08
Hi Frank,
selbst mit "VBA-Nein" sollte es dir bei "Excel-Gut" doch leicht fallen, diese kleine Nyance aus dem Code herauszulesen...
Wie und wo soll das Ergebnis denn erscheinen?
Grüße Boris
Betrifft: Ich geh jetzt schlafen..
von: Boris
Geschrieben am: 19.09.2004 01:18:13
Hi Frank,
daher hier doch noch die Minierweiterung - der Einfachheit halber einfach in 2 Schleifen:
Option Explicit
Sub komisch()
Dim l As Long, Summe As Double, by As Byte
Dim von As Double, bis As Double, B As Boolean
von = 1: bis = 49
For by = 1 To 2
For l = 2 To [a65536].End(xlUp).Row
If Cells(l, 2) >= von And Cells(l, 2) <= bis Then
Summe = Summe + Cells(l, 1)
B = True
End If
If IsEmpty(Cells(l, 2)) Then
Summe = Summe + Cells(l, 1) * -B
End If
If Not IsEmpty(Cells(l, 2)) Then
If Cells(l, 2) < von Or Cells(l, 2) > bis Then B = False
End If
Next l
MsgBox "Summe zischen " & von & " und " & bis & ": " & Summe, , "Gebe bekannt..."
von = 50: bis = 99: Summe = 0
Next by
End Sub
Grüße Boris
Betrifft: AW: Willst du mich auf den Arm nehmen?
von: Frank
Geschrieben am: 19.09.2004 01:18:33
Hi Boris,
ähm, ich weiß jetzt nicht, womit ich deinen Unwillen erregt habe. Die Summe für
1 - 49 wird angezeigt, die für 50 - 99 nicht. Woran es liegt durchschaue ich nicht.
Die Ausgabe mit der Box ist ja ok.
Grüße Frank
Betrifft: AW: Spezielle Summenbildung
von: K.Rola
Geschrieben am: 19.09.2004 00:27:51
Hallo,
es denn unbedingt eine Formellösung gefragt oder gehts auch mit VBA?
Gruß K.Rola
Betrifft: AW: Spezielle Summenbildung
von: Frank
Geschrieben am: 19.09.2004 00:36:00
Hallo K.Rola,
eigentlich wäre mir eine Lösung mit Makro sogar lieber, weil dann keine zusätzlichen
Formeln in die Tabelle müßten. Die Struktur darf ich nicht verändern.
Grüße Frank
Beiträge aus den Excel-Beispielen zum Thema "Spezielle Summenbildung"