Buchstaben Zählen ab 3 hintereinander

Bild

Betrifft: Buchstaben Zählen ab 3 hintereinander
von: Björn
Geschrieben am: 18.08.2015 11:52:28


Hallo Forum-Gemeinde,
ich bin auf der Suche nach einer Lösung meiner Excel-Herausforderung.
Ich möchte gerne eine Formel, die mir die Summer der Tage mit einem "S" angibt. Allerdings erst ab 3 "S" hintereinander.
Im Beispiel meiner angefügten Datei müsste in der Spalte AH2 eine 3 herauskommen, in AH3 eine 0 und AH4 eine 4.
Wäre schön wenn ihr mir hierbei helfen könntet. Championsleauge wäre natürlich wenn die Formel Wochenende/Feiertage mit berücksichtigen könnte. Wenn man diesen im Vorfeld ein "W" eintragen würde.
Danke für euren Support
https://www.herber.de/bbs/user/99664.xlsx

Bild

Betrifft: AW: Buchstaben Zählen ab 3 hintereinander
von: JoWE
Geschrieben am: 18.08.2015 12:15:20
Hallo Björn,
ohne "Summenprodukt" und nur "Kreisklasse":
=WENN(ZÄHLENWENN(B2:AF2;"S")>2;ZÄHLENWENN(B2:AF2;"S");"0")
Wo und unter welchen Bedingungen ein "W" erscheinen soll ist mir nicht wirklich klar geworden.
Wenn am Wochenende "S" geleistet wurde soll ein "W" erscheinen und dann soll "S" nicht gezählt werden?
Oder was?
Ich lasse Deine Frage mal offen, evtl. haben andere Deine Frage besser verstanden...
Gruß
Jochen

Bild

Betrifft: AW: Buchstaben Zählen ab 3 hintereinander
von: Björn
Geschrieben am: 18.08.2015 12:21:32
Hallo Jochen,
danke für dein schnelle Feedback.
Ich merke gerade das ich mich "etwas" undeutlich ausgedrückt habe.
a) Deine Formel zählt sobald in der Zeile 3 "S" stehen, es darf aber nur wenn mindestens 3
hintereinander vorhanden sind.
b) War meine Überlegung um das Wochenende zu berücksichtigen, ob ich für alle Samstage, Sonntage und
Feiertage ein "W" einsetze, welches bei der obigen Formel berücksichtigt werden kann.
VD
Björn

Bild

Betrifft: AW: Werte Zählen ab 3er Block >Werner?
von: JoWE
Geschrieben am: 18.08.2015 12:49:39
Hallo Björn,
sorry, habe keine Lösung. Stelle wieder auf offen!

Bild

Betrifft: AW: nachgefragt ...
von: ... neopa C
Geschrieben am: 18.08.2015 14:20:24
Hallo Björn,
... geh ich richtig in der Annahme, dass auch eine zweite bzw. weitere Gruppen von zusammenhängenden mind. 3x"S" mitgezählt werden sollen? Oder?
Allerdings sind Deine Angaben zu den Wochenende und Feiertagen noch nicht eindeutig. Was ist wenn ein "S" am Do,Fr sowie Mo eingetragen ist. Wird das als eine Gruppe gezählt oder nicht?
Unabhängig davon könnten derartige Tage auch nur berücksichtigt werden, wenn in Zeile A1 echte Datumswerte (die dann durchaus mit dem Format TT nur angezeigt werden können) stehen (das ist momentan bei Dir noch nicht der Fall) und zusätzliche eine Feiertagsliste (es reichen die Datumswerte) aufgestellt ist.
Ohne WE/FT und Auswertung wie oben geschrieben z.B. mit folgender Formel:
Tabelle1

 BCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAH
101.02.03.04.05.06.07.08.09.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31. S
2/  --/SSSS--SSS  -- S   -- SSS  10
3--     --     --     --   S S   0
4--     -- SSSS--     --     --  4
5    --     --    /--/    --     0
6/U--     --     --     --   /U- 0
7-UUUUU--/    --   / --     --   0

Formeln der Tabelle
ZelleFormel
AH2=SUMMENPRODUKT(((KKLEINSTE(SPALTE(A1:AF1)*(A2:AF2=AH$1)*(B2:AG2<>"S"); SPALTE(A1:AF1))-KKLEINSTE(SPALTE(A1:AF1)*(A2:AF2<>AH$1)*(B2:AG2="S"); SPALTE(A1:AF1)))>2)*(KKLEINSTE(SPALTE(A1:AF1)*(A2:AF2=AH$1)*(B2:AG2<>AH$1); SPALTE(A1:AF1))-KKLEINSTE(SPALTE(A1:AF1)*(A2:AF2<>AH$1)*(B2:AG2=AH$1); SPALTE(A1:AF1))))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Bild

Betrifft: AW: nachgefragt ...
von: Björn
Geschrieben am: 18.08.2015 16:12:17
Hi,
super vielen Dank das funktioniert schon mal sehr gut.
Die Datei gibt die Wochenende als "-" und die Feiertage als "/" aus. Wenn ich diese durch ein "W" ersetzen würde, wäre es dann möglich deine Formel anzupassen das diese "W" Zellen ignoriert werden? Denn sie sollen quasi die "S" Tage nicht unterbrechen, aber nicht in der Summe berücksichtigt werden.
vd
björn

Bild

Betrifft: AW: meine 1. Frage ist noch eindeutig beantwortet
von: ... neopa C
Geschrieben am: 18.08.2015 16:50:50
Hallo Björn
... um es konkret aufzuzeigen, wie viele S sind nachfolgend als Ergebnis auszuwerten? Um es ganz eindeutig zu machen, benenne die Zellen die nicht gezählt werden sollen.

 EFGHIJKLMNOPQRSTUVWXYZAAABACAD
5 --SS SS--S  S/--/SSSS--S 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Bild

Betrifft: AW: meine 1. Frage ist noch eindeutig beantwortet
von: Björn
Geschrieben am: 18.08.2015 20:45:06
Hi,
es sollte die Zahl 9 rauskommen. Die Zellen H,I sollen nicht zählen.
VD & VG
Björn

Bild

Betrifft: AW: nun ist es eindeutig ... allerdings ...
von: ... neopa C
Geschrieben am: 19.08.2015 09:45:19
Hallo Björn,
... ist dazu eine Formellösung recht komplex und nicht in paar Minuten zu lösen. Ich werde es mir aber auf jeden Fall anschauen aber auf keinen Fall vor Morgen.
Gruß Werner
.. , - ...

Bild

Betrifft: AW: hier wird mE VBA notwendig ...
von: ... neopa C
Geschrieben am: 20.08.2015 09:44:14
Hallo Björn,
... die Aufgabenstellung hat wohl zu viele Bedingungen, als diese mit einer Formel vertretbar (ohne das diese ein Monsterformel wird)lösbar ist. Ich jedenfalls hab auch nach 15 Minuten keinen vernünftigen Formel-Ansatz gefunden. Ich stell deshalb den thread auf offen, weil ich mich aus VBA-Lösungen ganz heraus halte.
Gruß Werner
.. , - ...

Bild

Betrifft: dann eben mit VBA
von: Michael
Geschrieben am: 21.08.2015 21:27:36
Hi zusammen,
ich hab schnell ne UDF gemacht, d.h. eine Funktion, die man im Excel-Sheet in einer Zelle verwenden kann.
Das Ding bitte in ein VBA-Modul stecken ...

Option Explicit
Public Function WieOft(ByVal r As Range, ByVal s As String, ByVal w As String)
Dim c As Range
Dim ss As String
Dim p As Long
If Len(s) <> 1 Or Len(w) <> 1 Then
WieOft = "#GEHT NET!"
Else
For Each c In r
  If (c.Value = s) Then
    ss = ss & c.Value
   Else
    If c.Value <> w Then ss = ss & "_"
  End If
Next
p = InStr(ss, String(3, s))
If p > 0 Then
  ss = Replace(Mid(ss, p), "_", "")
  WieOft = Len(ss)
Else
  WieOft = 0
End If
End If
End Function

... in AI2 so eingeben:
=wieoft(B2:AF2;"S";"W")
und runterkopieren.
In AI5 kommt dann 3 heraus, weil das "W" übersprungen wird.
Spaßhalber mal so: =wieoft(B2:AF2;"S";"Www")
Happy Exceling,
Michael

Bild

Betrifft: AW: bedarf aber mE noch Nachbesserung ...
von: ... neopa C
Geschrieben am: 24.08.2015 11:07:58
Hallo Michael,
... oder? Sieh mal:

 ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAI
1 01.02.03.04.05.06.07.08.09.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31. S
2Mustermann 1/  --/   S--SSS  --SS SS--S     78
3Mustermann 2--     --     --     --   S S    0
4Mustermann 3--     -- SSSS--    S--S    --  46
5Mustermann 4   S--SS SS--S  S/--/S   --S    60
6Mustermann 5/U--     --     --     --   /U-  0
7Mustermann 6-UUUUU--/    --   / --     --    0

Formeln der Tabelle
ZelleFormel
AI2=wieoft(B2:AF2;"S";"W")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Bild

Betrifft: ... naja, mag sein,
von: Michael
Geschrieben am: 24.08.2015 14:45:10
Werner,
aber so habe ich die Aufgabenstellung gedeutet, daß alles ab dem *ersten* Auftreten von mindestens 3 gezählt werden soll.
Wobei ich zugeben muß, daß ich mich mehr an der Datei
Userbild
orientiert habe - da kommt denn auch kein entsprechender Fall vor, leider.
Aber gut, ich habe mir das Ding nochmal vorgenommen...

Option Explicit
Public Function WieOft2(ByVal r As Range, ByVal s As String, ByVal w As String)
Dim c As Range
Dim buffer As Long
If Len(s) <> 1 Or Len(w) <> 1 Then
 WieOft2 = "#GEHT NET!"
Else
 For Each c In r
   If (c.Value = s) Then
    buffer = buffer + 1
    Else
    If c.Value <> w Then
      If buffer >= 3 Then WieOft2 = WieOft2 + buffer
      buffer = 0
    End If
   End If
 Next
End If
End Function

... und auf den Umweg über den String verzichtet; so müßte es auch schneller gehen.
Aber: wir können hier kritisieren (danke) und nachbessern, wie wir wollen, das hilft alles nix, wenn sich der Fragesteller nicht äußert.
Schöne Grüße,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Buchstaben Zählen ab 3 hintereinander"