Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eine Serie Zählen

Eine Serie Zählen
08.09.2013 14:02:59
Heinz
Hallo Leute im Forum
Ich habe eine Tabelle,in Spalte N4:N270 steht eine 3 oder eine 1 oder eine 0
Nun möchte ich zählen wie oft hintereinander eine 3 oder 1 oder 0 kommt.
Eine Zählung bräuchte ich auch mit 3 oder 1 hintereinander.
Habe das Problem in der Datei beschrieben.
Könnte mir dazu bitte jemand helfen?
Danke,Heinz
https://www.herber.de/bbs/user/87195.xlsx

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eine Serie Zählen
09.09.2013 08:44:17
fcs
Hallo Heinz,
mit Excel-Standardfunktionen ist das nur mit mehreren Hilfsspalten möglich. Ich empfehle deshalb eine benutzerdefinierte Funktion.
Gruß
Franz
'Erstellt unter Excel 2010 'Benutzerdefinierte Funktionen in einem allgemeinen Modul Function ZaehleSerie(Bereich As Range, Wert As Variant) As Long 'FormelBeispiel: =ZaehleSerie($N$4:$N$270;3) Dim WertAlt, lngzeile As Long, SerieNeu As Long For lngzeile = 1 To Bereich.Rows.Count If Bereich.Cells(lngzeile, 1) "" Then If Wert = Bereich.Cells(lngzeile, 1) Then If WertAlt = Wert Then SerieNeu = SerieNeu + 1 Else SerieNeu = 1 End If If SerieNeu > ZaehleSerie Then ZaehleSerie = SerieNeu End If WertAlt = Bereich.Cells(lngzeile, 1) End If Next End Function Function ZaehleSerie2(Bereich As Range, Wert1, Wert2, WertStop) As Long 'FormelBeispiel: =ZaehleSerie2($N$4:$N$270;3;1;0) Dim WertAlt, lngzeile As Long, SerieNeu As Long For lngzeile = 1 To Bereich.Rows.Count If Bereich.Cells(lngzeile, 1) "" Then If Wert2 = Bereich.Cells(lngzeile, 1) Then If WertAlt = Wert1 Then SerieNeu = SerieNeu + 1 If SerieNeu > ZaehleSerie2 Then ZaehleSerie2 = SerieNeu End If ElseIf WertStop = Bereich.Cells(lngzeile, 1) Then SerieNeu = 0 End If WertAlt = Bereich.Cells(lngzeile, 1) End If Next End Function

Anzeige
AW: Eine Serie Zählen
09.09.2013 09:06:38
Heinz
Guten morgen Franz
Könntest du mir Bitte den Code in die Beispielmappe integrieren?
Bring es leider nicht hin.
Danke Heinz

AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 11:06:35
fcs
Hallo Heinz,
1. öffne den VBA-Editor (Tastenkombination Alt+F11)
2. Füge, falls noch kein Modul vorhanden, für die Datei ein neues Modul ein
(Rechte-Maus-Klick auf das VBA-Projekt der Datei--Einfügen--Modul)
3. Kopiere den Code aus dem Forums-Text in das Excel-VBA-Modul.
4. Trage -analog Beispiel im Code- die Formeln in Zellen im Tabellenblatt ein-
5. Beim Speichern der Datei via "Speichern unter" den Dateityp XLSM (Datei mit Makros) oder XLS (ältere Excelversion) verwenden!.
Gruß
Franz

Anzeige
AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 11:32:45
Heinz
Hallo Franz
Ja das mit Modul und einfügen das bring ich schon hin.
Es tut sich aber nichts.
Gehört hier zum Beispiel nicht Sub_test
Habe jetzt ein Tab.Blatt mit den Formeln hochgeladen.
Danke Heinz
https://www.herber.de/bbs/user/87203.xlsm

AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 11:46:42
hary
Moin Heinz
Du rufst die UDF mt einer Formel auf.
1970 - 1971
 O
44

verwendete Formeln
Zelle Formel Bereich
O4 =ZaehleSerie(N4:N270;3) 

Tabellendarstellung in Foren Version 5.30


gruss hary

Anzeige
AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 11:57:03
Heinz
Hallo Hary
Wahnsinn welche Formeln es gibt.
Gibt es auch eine Formel die mir die Serie zählt,bis eine 0 kommt.
Also die 3 + 1 durchzählt bis eine 0 kommt?
Aber es schaut sehr gut aus.
Danke,Heinz

AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 13:23:57
fcs
Hallo Heinz,
für diese Zwecke ist die Function
ZaehleSerie2
von mir erstellt worden. Formelbeispiel findest du eben falls im geposteten Code.
Gruß
Franz

AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 13:46:47
Heinz
Hallo Fanz
Erstmals Großes Lob,für solche Formeln.
Die Formel =ZaehleSerie2($N$4:$N$400;3;1;0) zählt nicht richtig (Glaube ich).
Denn wenn 4 Siege in Serie,dann kann die 1 in Q7 nicht stimmen.
Gruß Heinz
1968 - 1969

 Q
3Serie hintereinand von Siegen
44
5 
6Serie hintereinand  Ungeschlagen
71
8 
9Serie hintereinand von Unentschieden
102
11 
12Serie hintereinand von Niederlagen
133

Formeln der Tabelle
ZelleFormel
Q4=ZaehleSerie($N$4:$N$400;3)
Q7=ZaehleSerie2($N$4:$N$400;3;1;0)
Q10=ZaehleSerie($N$4:$N$400;1)
Q13=ZaehleSerie($N$4:$N$400;0)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Anzeige
AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 15:34:12
Lars
Hallo,
kann man für die Zählung der 3,1 und 0 nicht die Funktion =zählenwenn(Bereich, Suchkriterium) nehmen? Dass sollte hierfür zumindest etwas einfacher sein.
Für die Zählung pro Serie (bis die 0 kommt) fällt mir allerdings vorerst nichts ein.
Liebe Grüße

AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 15:39:12
Heinz
Hallo Lars
Das geht hier leider nicht. Es soll ja nicht alle 3 & 1 zählen.
Nur soviel zählen bis 0 kommt.
Gruß Heinz

AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 16:08:21
fcs
Hallo Heinz,
Soll die Anzahl von 3-1-Folgen gezählt werden, bis die 0 das 1. Mal kommt, oder soll die größte Anzahl von 3-1-Serien Serien jeweils zwischen den 0-Werten ermittelt werden?
Gruß
Franz
Folgende Anpassung der Funktion erlaubt Optional beide Varianten, Standardmäßig wird bis zum 1.Stopp-Wert gezählt.
Function ZaehleSerie2(Bereich As Range, Wert1, Wert2, WertStop, _
Optional bolErste As Boolean = True) As Long
'FormelBeispiel: =ZaehleSerie2($N$4:$N$270;3;1;0)
'wenn bolErste = True dann wird bis zum 1. StopWert gezählt
'wenn bolErste = False dann wird die Max.-Anzahl zwischen den StopWerten ermittelt
Dim WertAlt, lngzeile As Long, SerieNeu As Long
For lngzeile = 1 To Bereich.Rows.Count
If Bereich.Cells(lngzeile, 1)  "" Then
If Wert2 = Bereich.Cells(lngzeile, 1) Then
If WertAlt = Wert1 Then
SerieNeu = SerieNeu + 1
If SerieNeu > ZaehleSerie2 Then ZaehleSerie2 = SerieNeu
End If
ElseIf WertStop = Bereich.Cells(lngzeile, 1) Then
If bolErste = True Then
Exit Function
Else
SerieNeu = 0
End If
End If
WertAlt = Bereich.Cells(lngzeile, 1)
End If
Next
End Function

Anzeige
AW: Code aus Forum in VBA-Modul kopieren
09.09.2013 16:15:43
Heinz
Hallo Franz
Soll die Anzahl von 3-1-Folgen gezählt werden, bis die 0 das 1. Mal kommt

Ja genau so bitte.
Es geht um Fußball,damit man sieht welche Serie ohne Niederlage eine Mannschaft hinlegt.
Danke Heinz

AW: Code aus Forum in VBA-Modul kopieren
10.09.2013 13:26:52
Heinz
Hallo Franz
Hättest du für dieses eine Problem,auch wieder eine Lösung für mich?
Soll die Anzahl von 3-1-Folgen gezählt werden, bis die 0 das 1. Mal kommt
Danke Heinz

AW: Code aus Forum in VBA-Modul kopieren
10.09.2013 14:55:19
fcs
Hallo Heinz,
ich hatte dir die Lösung hier doch schon gleich geliefert!
https://www.herber.de/forum/messages/1330053.html
Gruß
Franz

Anzeige
ZaehleSerie2 funkt.nicht.
10.09.2013 16:44:20
Heinz
Hallo Franz
Sorry wenn ich so lästig bin.
Die funktion ZaehleSerie2 stimmt leider nicht.
Bitte sie Zelle O7
Danke Heinz
https://www.herber.de/bbs/user/87227.xlsm

AW: ZaehleSerie2 funkt.nicht.
11.09.2013 11:10:55
fcs
Hallo Heinz,
du hast in deiner Datei nicht die von mir korrigierte Function unter diesem Link
https://www.herber.de/forum/messages/1330053.html
eingebaut.
Sondern die aus meiner 1. Anwort.
Mit der korrigierten Function ist das Ergebnis = 0.
Ich hoffe damit funktioniert es jetzt.
Gruß
Franz

Anzeige
AW: Code aus Forum in VBA-Modul kopieren
11.09.2013 12:51:01
Heinz
Hallo Franz
Nochmals bitte ich um Hilfe.
Wie rufe ich diese Funktion auf?
Danke Heinz

AW: Code aus Forum in VBA-Modul kopieren
11.09.2013 13:19:47
fcs
Hallo Heinz,
so langsam müsstets du doch mitbekommen haben, wie man benutzerdefinierte Funktionen in eine Zelle eingeben muss, nachdem du den Code der Funktion in ein algemeines Modul kopiert hast. Dabei musst du natürlich den schon vorhandenen Code der alten Version von Function ZaehleSerie2 löschen/überschreiben.
In der 3. Zeile habe ich ein Formelbeispiel mit angegeben:
  'FormelBeispiel: =ZaehleSerie2($N$4:$N$270;3;1;0)
Ist es den so schwer,
1. zu lesen
2. dies dann auch umzusetzen
Immerhin hast du doch schon ein Beispiel von den anderen Helfern bekommen, wie das in der Datei eingebaut wird.
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige