Längste Serie zählen
#1
Hallo ins Forum,

ich habe eine Frage zu Excel und hoffe, dass mir jemand weiterhelfen kann.
Ich habe eine Tabelle in der in der Spalte f sowohl positive, als auch negative Zahlen stehen.
Ich möchte gerne die längste Serie an positiven Zahlen ermitteln. 
Einmal soll einfach die Anzahl der positiven Zahlen der Serie gezählt und auch die Summe der
in den Zellen stehenden Werte aufaddiert werden.

Es wäre supertoll, wenn mir jemand weiterhelfen könnte.

Vielen Dank und Grü0e ins Forum von

Kai
Antworten Top
#2
Hallo Kai,

LET(), LAMBDA() und SEQUENZ() sollten eigentlich in O2021 funktionieren. Ob SCAN da schon mit vorhanden ist keine Ahnung. Was ich auch nicht weiß ob in O2021 da noch Einschränkungen in den genannten Funktionen vorhanden sind.

teste mal:
Code:
=LET(xA;F2:F1000;xPos;ISTZAHL(xA)*(xA>0); xB;SCAN(0;xPos;LAMBDA(r;c;WENN(c;r+1;0)));xLen;MAX(xB);xEnde;VERGLEICH(xLen;xB;0); xStart;xEnde-xLen+1;xNull;WENN(xStart>1;INDEX(xA;xStart-1)=0;FALSCH);xSa;xStart-WENN(xNull;1;0);xLa;xLen+WENN(xNull;1;0);INDEX(xA;SEQUENZ(xLa;1;xSa)))

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • kn1301
Antworten Top
#3
Vielen Dank für die schnelle Antwort, Uwe.
Jetzt muss ich als Anfänger mal ganz doof fragen...ist das eine Formel, die ich in eine Zelle eingeben kann, oder ein Script, dass ich irgendwie einfügen muss...
Viele Grüße von Kai
Antworten Top
#4
Hallo Kai,
 
ja das ist eine Formel. Diese packst du einfach in deine Zelle, von wo aus in der Spalte der größte positive Lauf gespillt ausgegeben wird.
Sollte da Überlauf ausgegeben werden, prüfe die nachfolgenden Zellen, dass diese leer sind.
 
Gruß Uwe
Antworten Top
#5
Hallo,

da sollte doch das reichen:

Code:
=LET(xA;F:.F;xPos;xA>0; xB;SCAN(0;xPos;LAMBDA(r;c;WENN(c;r+1;0)));MAX(xB))

oder übersehe ich da was?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • kn1301
Antworten Top
#6
@ Edgar, 
 
wir haben die Aufgabe wohl unterschiedlich verstanden. Mal sehen was er braucht. Ob Anzahl reicht oder der komplette Lauf. 
Der zusätzliche Punkt der in deinen Formeln immer mal drin ist lehnt der Formeleditor in O2024 ab. Welche Bedeutung/Hintergrund hat dieser zusätzliche Punkt?
 
Gruß Uwe
Antworten Top
#7
Hallo ihr beiden,

erstmal vielen Dank für eure Vorschläge. Leider klappen beide Formeln nicht.
Wenn ich in den Formeleditor gehe finde ich weder die Funktion Lambda noch Scan.
kann es sein, dass die Formel deshalb nicht klappt?

Vioele Grüße von Kai
Antworten Top
#8
Sorry, das hatte ich mir wohl falsch gemerkt.

Gruß Uwe
Antworten Top
#9
Hallo,

nun läuft das Forum wieder.

Anbei, da einige Funktionen in O2021nicht verfügbar sind eine UDF.
Vorsorglich, da unklar ist ob im positiven Lauf die Null mit dabei sein soll dann 2. Parameter WAHR oder FALSCH.

Formel für Ausgabe ohne Nullen: =Positive(F2:F1000;WAHR)
Formel für Ausgabe mit Nullen: =Positive(F2:F1000;FALSCH)

in ein allgemeines Modul:
Code:
Option Explicit

Function Positive(rng As Range, boNull As Boolean)
    Dim arr, z As Range, max&, tmp&, i&, j&, k&, boS As Boolean, arrAus()
    For Each z In rng.Cells
        i = i + 1
        If z.Value = "" Then boS = True
        If boNull = True Then
            If z > 0 And boS = False Then
                max = max + 1
            Else
                If tmp < max Then
                    tmp = max
                    ReDim arrAus(1 To max, 1 To 1)
                    For j = i - max To i
                        If rng.Cells(j - 1, 1) > 0 Then
                            k = k + 1
                            arrAus(k, 1) = rng.Cells(j - 1, 1)
                        End If
                    Next
                    k = 0
                    max = 0
                End If
                If z < 0 Then max = 0
            End If
        Else
            If z >= 0 And boS = False Then
                max = max + 1
            Else
                If tmp < max Then
                    tmp = max
                    ReDim arrAus(1 To max, 1 To 1)
                    For j = i - max To i - 1
                        k = k + 1
                        arrAus(k, 1) = rng.Cells(j, 1)
                    Next
                    k = 0
                    max = 0
                End If
                If z < 0 Then max = 0
            End If
        End If
    Next
    Positive = arrAus
End Function

.xlsm   Länste psoitive Kette.xlsm (Größe: 17,52 KB / Downloads: 8)

Gruß Uwe
Antworten Top
#10
office-hilfe.com/support/threads/maximale-anzahl-von-negativen-werte-hintereinander
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste