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

Forumthread: Zählen von Blöcken

Zählen von Blöcken
04.12.2018 11:01:50
Blöcken
Hallo, ich komme nicht weiter beim Zählen von aufeinanderfolgenden Zellen mit gleichem Inhalt. Ich habe in einer Spalte die folgenden verschiedenen Kategorien eingetragen: A,B,C,D, dazwischen sind auch immer wieder leere Zeilen.
A
B
B
B
B
B
A
A
B
B
B
B
Ich suche nach einer Lösung zur Ermittlung der Anzahl der Blöcke, in denen B aufeinanderfolgt. Im Beispiel wären das 3. Da ich das für insgesamt 95 Spalten ermitteln möchte, suche ich nach einer Lösung, die ohne Hilfsspalte auskommt. Vielen Dank schon mal vorab für eure Hilfe!
Anzeige

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mal als Ansatz
04.12.2018 11:35:39
WF
Hi,
=SUMMENPRODUKT(NICHT(ISTLEER(A1:A100))*ISTLEER(A2:A101)*(A1:A100="B"))
Das funktioniert aber nur, wenn der jeweilige Block mit B endet.
Ist bei Dir der Fall - ich schätze, dass das Zufall ist.
WF
AW: Zählen von Blöcken
04.12.2018 11:43:37
Blöcken
Hi
probier mal:
=ZählenWenns(A1:A100;"B";A2:A101;"B")
wichtig ist, dass die beiden Zellbereiche um eine Zeile versetzt, aber trotzdem gleich groß sind.
Gruß Daniel
Anzeige
das funktioniert nicht
04.12.2018 11:52:39
WF
Hi,
änder mal den Block BBB in BAB
Dieser eine Block wird dann als 2 Blöcke gezählt.
WF
Das sind doch zwei B-Blöcke, die durch ein
04.12.2018 16:04:55
Daniel
A getrennt werden.
OK - das ist ne Definitionsfrage
04.12.2018 16:20:33
WF
Für mich sind die "Blöcke" durch Leerzeichen getrennt; für Dich durch alles, was nicht B ist.
Das muss die Fragerin präzisieren.
WF
Anzeige
Eigentlich hättest du auch noch explizit ...
04.12.2018 12:46:18
Luc:-?
…sagen müssen, Franziska,
wodurch ein „Block“ definiert ist. So kann man nur vermuten, dass Leerzeilen seine Grenzen markieren. Wenn das so ist, könnte eine VBA-Lösung ggf einfacher, schneller und universeller sein.
🙈 🙉 🙊 🐵 Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
Ich finde das Bsp. ausreichend illustriert ...
04.12.2018 20:44:56
lupo1
... da können sich viele bei Franziska eine Scheibe abschneiden.
  • die Blöcke sind durch Leerzeilen getrennt
  • in den Blöcken selbst müssen mindestens 2 B aufeinander folgen

  • Allerdings wird es mit einer hilfsspaltenlosen Lösung ohne VBA nichts, da Excel leider keine Formelfortschreibungen "im Sinn" als Vektor beherrscht.
    Daher der Vorschlag: Verwende gleich ein ganzes Hilfsblatt und stelle es dahinter. Ich illustriere es hier mit Hilfsspalte B an Daten A, da ich Formeln mit Fremdblattangaben hasse; die Hilfsspalte kannst Du dann verschieben, so dass die Fremdblattangaben durch Excel später automatisch entstehen.
  • Ab A2 stehen Deine Blöcke und ab B2 die Hilfsspaltenformel.
  • Zeile 1 ist leer.
  • B2: =WENN(A3="B";B1+(A2="B")%;KÜRZEN(B1+(A2="B"))) runterziehen auf eine fixe Überlänge, so dass Du die Endergebnisse einfach aus der letzten Zeile (z.B. 999) des neuen Hilfsblatts holen kannst
  • Klicke den Spaltenkopf B an (wichtig! Also die ganze Spalte!), mache Strg-X, und mache dann im Hilfsblatt auf Zelle A1 Strg-V
  • Nun kannst Du die 95 Spalten A:CQ rechts ausfüllen mit Strg-R
  • Anmerkung: Mit meiner Formel würde in B-B-A-B-B-leer das Auftreten von B 2mal gezählt, aber das scheint es bei Dir von vornherein nicht zu geben, wenn ich an vollständige Beispiele bei Dir weiterhin glauben darf.

  • Anzeige
    Fehler: Einzelne B zählen auch ... Moment ...
    04.12.2018 20:58:11
    lupo1
    Fehler vermutlich behoben
    04.12.2018 21:02:11
    lupo1
    B2: =WENN(A3="B";B1+(A2="B")%;KÜRZEN(B1+(A1="B")*(A2="B"))) statt
    B2: =WENN(A3="B";B1+(A2="B")%;KÜRZEN(B1+(A2="B")))
    Sie schreibt, dass auch Leerzeilen auftreten ...
    04.12.2018 22:51:28
    Luc:-?
    …können, Lupo;
    d.h. nicht ausdrücklich, dass diese auch die BlockGrenzen markieren. WF hat's so interpretiert, Daniel nicht. Das ist fast wie bei Deinem Rundungsstreit…
    Gruß, Luc :-?
    Anzeige
    Ich glaube, dass Du da noch mal genauer lesen ...
    04.12.2018 23:29:56
    lupo1
    ... solltest, da sie die Leerzellen überhaupt nur einmal erwähnt, diese jedoch im Beispiel ganz eindeutig die Grenzen darstellen. Die inhaltliche Verknüpfung hat sie eher vergessen oder nicht für nötig gehalten, da das Beispiel für sich spricht.
    Und wie gesagt: Die Problembeschreibung gehört für mich zu den 5% besten (klarsten) im Netz.
    Anzeige
    viel einfacher und BBABB ist ein Block
    05.12.2018 09:04:10
    WF
    in B1 (Hilfsspalte):
    =(A1="")*ZÄHLENWENN(A$1:A1;"B")
    runterkopieren
    das Ergebnis:
    =SUMME((HÄUFIGKEIT(B:B;B:B)>0)*1)-1
    Salut WF
    die Frage ist, ob "ABA" auch ein Block ist,
    05.12.2018 10:08:11
    Daniel
    da die Fragestellung ja lautete "Anzahl der Blöcke, in denen B aufeinanderfolgt."
    in einem Block mit nur einem "B" gibt es ja keine aufeinander folgende "B".
    ebenso wäre die Frage zu klären, ob so ein Block "ABABABA" gezählt werden soll, weil auch hier keine "B" direkt aufeinander folgen, sondern mit Abstand stehen.
    Gruß Daniel
    Anzeige
    Das muss die Fragerin präzisieren.
    05.12.2018 10:32:23
    WF
    schrieb ich Dir doch oben.
    WF
    =ZÄHLENWENN(A$1:A1; ...
    05.12.2018 13:13:43
    lupo1
    ... in mehr als nur homöpathischer Dosis ist Rechenmüll (da exponenzieller Bedarf).
    Das weißt Du aber auch, WF.
    Durch das Beispiel
    seh' ich eh
    bei "BAB"
    nur "nee!".
    Bahnhof ?
    05.12.2018 14:53:51
    WF
    .
    Anzeige
    http://www.decisionmodels.com/optspeedg.htm
    05.12.2018 15:52:58
    lupo1
    ... Englisch beherrschst Du ja noch vom Brückenbau.
    In Kamerun ist die Amtssprache französisch.
    05.12.2018 17:07:13
    WF
    in
    http://excelformeln.de/formeln.html?welcher=42
    steht:
    "Diese Formel ist (da kein Array) sehr schnell und akzeptiert komplette Spalten."
    stammt von JensF
    WF
    Anzeige
    ... à une Stazenbrau (im Straßenbau), enchanté!
    06.12.2018 08:04:09
    lupo1
    Somme cumulée et cumulative

    Il existe deux méthodes pour effectuer des SOMME sur la période ou cumulée:
    Supposons que les nombres que vous voulez cumuler SOMME se trouvent dans la colonne A et que vous souhaitiez que la colonne B ait la somme cumulée.
    Vous pouvez créer une formule dans la colonne B telle que =SOMME($A$1:$A2) et faites-la glisser aussi loin que vous le souhaitez. La cellule de début de SOMME est ancrée dans A1, mais étant donné que la cellule de finition possède une référence de ligne relative, celle-ci augmente automatiquement pour chaque ligne.
    Ou vous pouvez créer une formule comme =$A1 dans la cellule B1 et comme =$B1+$A2 dans B2 et faites-la glisser aussi loin que vous le souhaitez. Ceci calcule la cellule cumulative en ajoutant ce nombre de lignes au SOMME cumulatif précédent.
    Pour 1000 lignes, la première méthode oblige Excel à effectuer environ 500 000 calculs, tandis que la deuxième méthode ne fait qu'exécuter environ 2000 calculs (250 fois plus efficace!).
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Zählen von Blöcken in Excel


    Schritt-für-Schritt-Anleitung

    Um die Anzahl der aufeinanderfolgenden Zellen mit gleichem Inhalt in Excel zu zählen, kannst du die folgende Formel verwenden:

    =SUMMENPRODUKT(NICHT(ISTLEER(A1:A100))*ISTLEER(A2:A101)*(A1:A100="B"))

    Diese Formel zählt die Blöcke, wenn der Block mit "B" endet. Beachte, dass diese Methode eine Hilfsspalte vermeidet, aber nur funktioniert, wenn deine Daten entsprechend strukturiert sind.

    Wenn du auch Blöcke zählen möchtest, die durch Leerzeilen getrennt sind, kannst du die folgende Formel nutzen:

    =ZÄHLENWENN(A1:A100;"B")-ZÄHLENWENN(A1:A100;"<>B")

    Diese zählt alle Vorkommen von "B" und subtrahiert die, die nicht zu einem Block gehören.


    Häufige Fehler und Lösungen

    1. Fehler: Die Formel zählt nicht korrekt, wenn "B" nicht am Ende eines Blocks steht.

      • Lösung: Verwende die Formel =ZählenWenns(A1:A100;"B";A2:A101;"B"), dabei müssen die Zellbereiche um eine Zeile versetzt sein.
    2. Fehler: Einzelne "B" werden ebenfalls als Block gezählt.

      • Lösung: Stelle sicher, dass in deinem Beispiel mindestens zwei "B" hintereinander stehen, um als Block gezählt zu werden.

    Alternative Methoden

    Eine VBA-Lösung kann universeller sein, wenn du oft mit solchen Zählungen arbeitest. Hier ein einfacher VBA-Code, um Blöcke von "B" zu zählen:

    Function CountBlocks(rng As Range) As Long
        Dim cell As Range
        Dim count As Long
        Dim inBlock As Boolean
    
        inBlock = False
        count = 0
    
        For Each cell In rng
            If cell.Value = "B" Then
                If Not inBlock Then
                    count = count + 1
                    inBlock = True
                End If
            Else
                inBlock = False
            End If
        Next cell
    
        CountBlocks = count
    End Function

    Du kannst diese Funktion in Excel aufrufen, um die Anzahl der Blöcke zu ermitteln.


    Praktische Beispiele

    Angenommen, du hast folgende Werte in Spalte A:

    A
    A
    B
    B
    B
    C
    B
    B
    A

    Mit der oben genannten Formel würdest du 2 Blöcke von "B" zählen, weil die "B" in Reihe 2-4 und 6-7 als zwei separate Blöcke gelten.


    Tipps für Profis

    • Achte darauf, dass deine Daten sauber strukturiert sind. Leere Zellen können die Zählung beeinträchtigen.
    • Nutze die Funktion HÄUFIGKEIT, um die relative Häufigkeit der Werte zu analysieren.
    • Wenn du mit mehreren Spalten arbeitest, ziehe in Betracht, eine Matrixformel zu verwenden, um die Berechnungen zu optimieren.

    FAQ: Häufige Fragen

    1. Wie zähle ich Zellen mit gleichem Inhalt in mehreren Spalten?
    Du kannst die Formeln anpassen und die Bereiche entsprechend erweitern, z.B. =SUMME((A1:A100="B")*(B1:B100="B")).

    2. Was ist der Unterschied zwischen einem Block und einer einzelnen Zelle?
    Ein Block besteht aus mindestens zwei aufeinander folgenden Zellen mit dem gleichen Inhalt, während eine einzelne Zelle keinen Block darstellt.

    3. Gibt es eine Möglichkeit, die Formeln für große Datenmengen zu optimieren?
    Ja, die Verwendung von VBA kann die Verarbeitungsgeschwindigkeit erhöhen, besonders bei großen Datensätzen.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige