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

Forumthread: Summieren von einzelnen Zahlenblöcken

Summieren von einzelnen Zahlenblöcken
26.01.2009 15:57:31
einzelnen
Liebe Excel-Gemeinde!
Folgende Problemstellung habe ich:
Eine Spalte, sagen wir A, mit 30’ – 40'000 Zeilen, enthält Blöcke mit 1 (Einsen), die durch einzelne oder viele leere Zellen unterbrochen werden.
Nun sollte ich in Spalte B bei allen Blöcken der Spalte A, die mehr als 5 Einsen untereinander zeigen, die Summe dieses Blockes neben der ersten oder letzten Zelle des entsprechenden Blockes anzeigen.
Alle meine Versuche versandeten bisher im Misserfolg. Ihr seid meine grosse Hoffnung!
Vielen Dank und herzliche Grüsse
Henry
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summieren von einzelnen Zahlenblöcken
26.01.2009 16:18:00
einzelnen
Hi Henry,
Zahl 6 = Mehr als 5 Einsen.
Anzeige der Zahl 6 in letzter Zeile des Blocks. Formel in B1 und runterkopieren:

=WENN(REST(ZÄHLENWENN(A$1:A1;1);6)=0;6;"")


Anzeige von FALSCH(=Kein Blockende), WAHR (=Blockende in letzter Zeile). Formel in B1 und runterkopieren:


=REST(ZÄHLENWENN(A$1:A1;1);6)=0*1


Grüsse RS

Anzeige
Kleine Korrektur:
26.01.2009 16:58:00
RS
Hi Henry,

=WENN(REST(ZÄHLENWENN(A$1:A1;1);6)=A1-1;6;"")


und


=UND(REST(ZÄHLENWENN(A$1:A1;1);6)=0;A1=1)


Grüsse RS

AW: Kleine Korrektur:
26.01.2009 17:11:28
Henry
Hallo RS
Auch mit den korrigierten Formeln habe ich die gleichen Phänomene!
Gruss Henry
Anzeige
AW: Summieren von einzelnen Zahlenblöcken
26.01.2009 17:02:16
einzelnen
Vielen Dank RS
Bei beiden Formeln habe ich folgende Phänomene.
a) wenn ich die Formel in B1 kopiere und herunterziehe, zeigt die Spalte B bloss immer die gleiche Formel wie Text an.
b) wenn ich die Formeln manuell eintippe gibt er Fehler und markiert dabei die Bereichsangabe A1.
was mache ich falsch?
Gruss Henry
Anzeige
Standard formatieren
26.01.2009 17:09:00
RS
Hi Henry,
Fehler 1, scheint auf eine Formatierung der Spalte B als Text, statt Standard hinzudeuten.
Fehler 2, scheint auf a) Tippfehler oder b) andere Sprachversion, wie deutsch von EXCEL hinzudeuten.
Beachte meinen Korrekturvorschlag.
Grüsse RS
AW: Standard formatieren
26.01.2009 17:26:00
Henry
Vielen Dank RS
Tippfehler waren es nicht. Aber ich habe von Deutsch Schweiz auf Deutsch Deutschland umgeschaltet und jetzt funktioniert die Formel....aber da besteht noch ein Missverständnis. Die Blöcke können unterschiedlich lang sein (von 1 bis vielleicht 1000). Ich sollte von jedem Block seine effektive Summe haben, vorausgesetzt der Block hat merh als 5 Einsen direkt untereinander - also bis die erst leere Zelle kommt. Auch die Anzahlen Leerzellen zwischen den Blöcken können stark variieren von 1 bis nnnn.
Herzlichen Dank und Gruss
Henry
Anzeige
AW: Standard formatieren
26.01.2009 17:52:00
Henry
Hallo RS
Noch zur Sprachversion. Mir ist nicht klar, was den Unterschied zwischen Schweiz und Deutschland macht bei der Excel-Formel und -Funktionen Syntax. Deinen Formelvorsclag würde mann in der Schweiz genau so schreiben.
Herzliche Grüsse
Henry
AW: Summieren von einzelnen Zahlenblöcken
26.01.2009 16:34:00
einzelnen
Servus Henry,
per Makro so:
Option Explicit

Sub t()
Dim rSuche As Range, rFinde As Range, strErste As String, x As Long, y As Long, i As Long
Dim ZeilenArrayAnfang() As Long, ZeilenArrayEnde() As Long
Dim lngLetzte As Long, suchString As String
lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row
Set rFinde = Range("A2:A" & lngLetzte + 1)
Set rSuche = rFinde.Find(what:=suchString, LookAt:=xlWhole, LookIn:=xlValues)
ReDim Preserve ZeilenArrayAnfang(y)
ZeilenArrayAnfang(y) = 1
y = y + 1
If Not rSuche Is Nothing Then
strErste = rSuche.Address
Do
If rSuche.Offset(-1, 0) = 1 And rSuche.Offset(1, 0) = "" Then
ReDim Preserve ZeilenArrayEnde(x)
ZeilenArrayEnde(x) = rSuche.Offset(-1, 0).Row
x = x + 1
Else
If rSuche.Offset(1, 0) = 1 And rSuche.Offset(-1, 0) = "" Then
ReDim Preserve ZeilenArrayAnfang(y)
ZeilenArrayAnfang(y) = rSuche.Offset(1, 0).Row
y = y + 1
Else
If rSuche.Offset(1, 0) = 1 And rSuche.Offset(-1, 0) = 1 Then
ReDim Preserve ZeilenArrayEnde(x)
ZeilenArrayEnde(x) = rSuche.Offset(-1, 0).Row
x = x + 1
ReDim Preserve ZeilenArrayAnfang(y)
ZeilenArrayAnfang(y) = rSuche.Offset(1, 0).Row
y = y + 1
End If
End If
End If
Set rSuche = rFinde.FindNext(rSuche)
Loop While Not rSuche Is Nothing And rSuche.Address  strErste
Else
Exit Sub
End If
For i = LBound(ZeilenArrayAnfang()) To UBound(ZeilenArrayAnfang())
If ZeilenArrayEnde(i) - ZeilenArrayAnfang(i) + 1 > 5 Then
Range("B" & ZeilenArrayEnde(i)) = WorksheetFunction.Sum(Range("A" & ZeilenArrayAnfang(i) _
& ":A" & ZeilenArrayEnde(i)))
End If
Next i
End Sub


Hier passend zu deinem Beispiel mit Spalte A und Einsen. Ergebnis wird in Spalte B am Ende des Blocks reingeschrieben.
Gruß
Chris

Anzeige
AW: Summieren von einzelnen Zahlenblöcken
26.01.2009 17:31:27
einzelnen
Herzlichen Dank Chris
Ist ja phänomenal, in welch zurzer Zeit Du so ein VBA-Code komponierst - herzliche Gratulation. Den werde ich sicher auch ausprobieren; da ich aber nicht zu stark mit VBA-Wissen belastet bin :-) werde ich dazu eine ruhige Minute abwarten um den Test in aller Ruhe durchzuführen.
Nochmals herzlichen Dank mit Gruss
Henry
Anzeige
AW: Summieren von einzelnen Zahlenblöcken
26.01.2009 18:02:00
einzelnen
Hi Chris
Deinen VBA-Code habe ich inzwischen getestet: SUUUUUUUUUPER! Er macht haargenau was ich mir wünschte.
Nochmals herzlichen Dank und RIESEN Gratualtion.
Herzliche Grüsse
Henry
AW: bitteschön owT
26.01.2009 18:10:14
Chris
.
;

Forumthreads zu verwandten Themen

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 von einzelnen Zahlenblöcken in Excel


Schritt-für-Schritt-Anleitung

  1. Spalte A vorbereiten: Stelle sicher, dass deine Daten in Spalte A sind und nur Einsen und leere Zellen enthalten.

  2. Formel einfügen: Gehe zur Zelle B1 und füge die folgende Formel ein:

    =WENN(REST(ZÄHLENWENN(A$1:A1;1);6)=0;6;"")

    Diese Formel gibt „6“ in der letzten Zelle eines Blocks zurück, wenn der Block mehr als 5 Einsen enthält.

  3. Formel nach unten ziehen: Ziehe die Formel von B1 bis zur letzten Zeile deiner Daten in Spalte A.

  4. Zusätzliche Formel: Um festzustellen, ob es sich um das Ende eines Blocks handelt, füge in B1 die folgende Formel ein:

    =REST(ZÄHLENWENN(A$1:A1;1);6)=0*1
  5. Formatierung prüfen: Stelle sicher, dass die Spalte B nicht als Text formatiert ist. Klicke dazu mit der rechten Maustaste auf die Spalte B, wähle „Zellen formatieren“ und setze das Format auf „Standard“.


Häufige Fehler und Lösungen

  • Formel wird als Text angezeigt: Dies deutet darauf hin, dass die Spalte B als Text formatiert ist. Ändere das Format auf „Standard“.

  • Fehlermeldungen bei Bereichsangaben: Überprüfe, ob du die Formeln korrekt eingegeben hast und dass keine Tippfehler vorhanden sind. Achte besonders auf die Verwendung von Semikolons und Kommas, die je nach Excel-Version unterschiedlich sein können.


Alternative Methoden

Wenn du mit Formeln nicht weiterkommst, kannst du auch VBA verwenden. Hier ist ein einfaches Makro, das die Summen automatisch berechnet:

Sub t()
    Dim rSuche As Range, rFinde As Range
    Dim ZeilenArrayAnfang() As Long, ZeilenArrayEnde() As Long
    Dim lngLetzte As Long, x As Long, y As Long

    lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row
    Set rFinde = Range("A1:A" & lngLetzte)

    For Each rSuche In rFinde
        If rSuche.Value = 1 Then
            ' Logik zur Summierung hier einfügen
        End If
    Next rSuche
End Sub

Füge den VBA-Code in das Modul ein, um die Summen in Spalte B zu erhalten.


Praktische Beispiele

Wenn du beispielsweise in Spalte A die folgenden Werte hast:

1
1
1
1
1
1

1
1
1

Wird die Formel in Spalte B die Zahl „6“ in der letzten Zelle des ersten Blocks (6 Einsen) anzeigen. Der zweite Block wird ebenfalls bei der letzten Zelle „3“ anzeigen, wenn du die Summen entsprechend anpasst.


Tipps für Profis

  • Verwende die „SUMME“-Funktion: Wenn du die Summen der Blöcke berechnen möchtest, kannst du die Funktion SUMME() innerhalb der VBA-Logik verwenden, um die Werte zu addieren.

  • Nutze bedingte Formatierungen: Hervorhebung von Blöcken, die mehr als 5 Einsen enthalten, kann dir helfen, die Daten besser zu visualisieren.

  • Optimierung des VBA-Codes: Achte darauf, deinen Code zu optimieren, um die Laufzeit zu verkürzen, insbesondere bei großen Datenmengen.


FAQ: Häufige Fragen

1. Was mache ich, wenn die Formeln nicht funktionieren?
Überprüfe die Formatierung der Zellen und stelle sicher, dass du die richtigen Trennzeichen verwendest (z.B. Semikolon oder Komma).

2. Wie kann ich die Anzahl der Einsen in einem Block anpassen?
Ändere die Zahl „6“ in den Formeln zu der gewünschten Anzahl.

3. Gibt es eine Excel-Version, die ich verwenden sollte?
Die vorgestellten Formeln und VBA-Codes sind in den meisten modernen Excel-Versionen (ab 2010) kompatibel, aber die Syntax kann je nach Spracheinstellung variieren.

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