Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

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:

 
 ABCDEFG
1  Hilfsspalte VonBisSumme
210011 1491300
3200 1 50991100
43006060    
5400 60    
6400 60    
74002020    
8300 20    
9300 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"