Zählen bei mehr als 10 aufeinanderfolgenden Buchstaben
#1
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
Top
#2
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
Top
#3
@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?
Schöne Grüße
Berni
Top
#4
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.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Hi zusammen,
ja genau, es muss aufeinanderfolgend sein. VBA wäre auch gut. Smile
Top
#6
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
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Andreas85
Top
#7
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


Angehängte Dateien
.xlsm   Excel-U.xlsm (Größe: 20,26 KB / Downloads: 2)
Top
#8
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
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Andreas85
Top
#9
Es hat funktioniert! :05: Vielen vielen Dank!

VG Andreas
Top


Gehe zu:


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