Clever-Excel-Forum

Normale Version: Zählen bei mehr als 10 aufeinanderfolgenden Buchstaben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi zusammen,
ich habe eine Frage: Ich habe eine Arbeitsmappe, die für jeden Tag im Jahr eine Spalte (Y:NY) hat und in jeder Zeile steht ein Produkt. 
Nun möchte ich, dass mir je Produkt eine 1 gezählt wird, sobald mehr als 10 direkt aufeinanderfolgende "U" pro Jahr (1 Zeile) da sind. Habe schon einiges probiert, aber leider war noch nicht das richtige dabei. Könnt ihr mir helfen? Danke euch!

VG Andreas
Hallo Andreas

mich wundert das unsere Formel Profis dir noch nicht geantwortet haben. Vielleicht sehe ich die Aufgabe falsch??
Probier bitte mal diese Formel aus:    =WENN(ZÄHLENWENN(Y2:NY2;"U")>10;1;0)

In welche Spalte du diese Formel setzt must du selbst entscheiden. Wenn der Bereich "Y2:NY2" nicht stimmt bitte selbst aendern.

mfg  Gast 123
@Gast: Ich denke, dass "10 direkt aufeinanderfolgende "U" pro Jahr" das Problem ist. Also nur, wenn wirklich 10 Zellen hintereinander befüllt sind, soll die 1 zum Tragen kommen.

@Andreas: Ob es hier eine Formellösung gibt, kann ich nicht sagen. Wäre VBA auch eine Variante für dich? Und wenn ja, was soll mit der 1 passieren? Soll die in eine Zelle geschrieben werden?
Hallo Gast,

das Problem liegt darin, dass nur dann die 1 geschrieben werden soll, wenn mindestens ein Block von 10 aufeinanderfolgenden "U" auftritt.
Zitat:sobald mehr als 10 direkt aufeinanderfolgende "U" pro Jahr (1 Zeile) da sind.
Hi zusammen,
ja genau, es muss aufeinanderfolgend sein. VBA wäre auch gut. Smile
Leider bist du nicht auf meine Frage eingegangen, was mit der 1 passieren soll. Daher musst du den Code halt selbst anpassen.

Code:
Sub Eintragen()
Dim Z As Integer, S As Integer, Zaehler As Integer

For Z = 2 To Cells(Rows.Count, "X").End(xlUp).Row
   For S = 25 To 389
       If Cells(Z, S) <> "U" Then
           Zaehler = 0
       ElseIf Cells(Z, S) = "U" Then
           Zaehler = Zaehler + 1
           If Zaehler > 10 Then
               Cells(Z, "A") = 1           'Trage 1 in Spalte A ein
               GoTo NaechesteZeile
           End If
       End If
   Next S
NaechesteZeile: Zaehler = 0
Next Z

End Sub
Hi Berni,
vielen Dank für deinen Code. Habe ihn mal in die Excel eingefügt und versucht ihn ans Laufen zu bekommen. Leider funktioniert er trotz Anpassung noch nicht so richtig. Hast Du eine Ahnung woran das liegen kann? Habe mal die Excel-Datei angehängt.

VG Andreas
Code:
Sub Eintragen()
Dim Z As Integer, S As Integer, Zaehler As Integer

For Z = 4 To Cells(Rows.Count, "B").End(xlUp).Row        'Zeile 4 bis letzte Zeile in Spalte B
   For S = 25 To 389
       If Cells(Z, S) <> "U" Then
           Zaehler = 0
       ElseIf Cells(Z, S) = "U" Then
           Zaehler = Zaehler + 1
           If Zaehler > 10 Then
               Cells(Z, "H") = 1           'Trage 1 in Spalte H ein
               GoTo NaechesteZeile
           End If
       End If
   Next S
NaechesteZeile: Zaehler = 0
Next Z

End Sub
Es hat funktioniert! :05: Vielen vielen Dank!

VG Andreas