mal wieder so ein Ding, mit dem ich mich seit 2 Stunden befasse:
In meiner formatierten Tabelle "tab_Liga" in Sheets("Liga") ist u.a.
Spaltentitel: "Chronologie"
Die enthaltenen Werte, Beispiele:
1-0, 1-1, 2-1, 3-1, 3-2, 4-2
0-1, 0-2, 1-2, 2-2, 3-2
1-0, 1-1, 1-2, 1-3
1-0
oder Leerzelle
Ich möchte nun feststellen, wie oft ein "kompletter Fürhrungswechsel) statt fand.
Beispiel aus Chronologie:
1-0, 1-1, 1-2, 1-3
Hier hat die Führung 1x komplett gewechselt
Ergebnis: 1
__________________
0-1, 1-1, 2-1, 2-2, 2-3, 2-4, 3-4
Hier hat die Führung 2x gewechselt
Ergebnis: 2
Mein bisheriges Makro:
Sub Führungswechsel()
Dim ws As Worksheet
Dim tbl As ListObject
Dim Chronologie As Range
Dim Führungswechsel As Range
Dim Zelle As Range
Dim VorherigeFührung As String
Dim AktuelleFührung As String
Dim WechselCount As Long
Dim HeimTeam As Double
Dim GastTeam As Double
Dim VorherigeHeimTeam As Double
Dim VorherigeGastTeam As Double
Dim i As Long
Dim FührendeMannschaftVorher As String
Dim FührendeMannschaftAktuell As String
Dim Spielstände() As String
Set ws = ThisWorkbook.Sheets("Liga")
Set tbl = ws.ListObjects("tab_Liga")
Set Chronologie = tbl.ListColumns("Chronologie").DataBodyRange
Set Führungswechsel = tbl.ListColumns("Führungswechsel").DataBodyRange
' Schleife durch jede Zelle in der Spalte "Chronologie"
For Each Zelle In Chronologie
VorherigeFührung = ""
WechselCount = 0
' Split Chronologie in Einzelspielstände
Spielstände = Split(Zelle.Value, ", ")
' Schleife durch jeden Spielstand
For i = LBound(Spielstände) To UBound(Spielstände)
AktuelleFührung = Spielstände(i)
' Bestimme die Führung (Heim oder Gast)
HeimTeam = val(Split(AktuelleFührung, "-")(0))
GastTeam = val(Split(AktuelleFührung, "-")(1))
' Bestimme die führende Mannschaft
If HeimTeam > GastTeam Then
FührendeMannschaftAktuell = "Heim"
ElseIf HeimTeam GastTeam Then
FührendeMannschaftAktuell = "Gast"
Else
FührendeMannschaftAktuell = "Unentschieden"
End If
' Überprüfe, ob es einen Führungswechsel gab
If VorherigeFührung > "" Then
' Bestimme die führende Mannschaft in der vorherigen Phase
If VorherigeHeimTeam > VorherigeGastTeam Then
FührendeMannschaftVorher = "Heim"
ElseIf VorherigeHeimTeam VorherigeGastTeam Then
FührendeMannschaftVorher = "Gast"
Else
FührendeMannschaftVorher = "Unentschieden"
End If
' Prüft, ob die Führung gewechselt hat
If FührendeMannschaftAktuell > FührendeMannschaftVorher And _
FührendeMannschaftAktuell > "Unentschieden" And _
FührendeMannschaftVorher > "Unentschieden" Then
WechselCount = WechselCount + 1
End If
End If
' Setze die aktuelle Führung als vorherige Führung für die nächste Iteration
VorherigeFührung = AktuelleFührung
VorherigeHeimTeam = HeimTeam
VorherigeGastTeam = GastTeam
Next i
Führungswechsel(Zelle.row - Chronologie.row + 1).Value = WechselCount
Next Zelle
End Sub
Idee war, die Unentschieden zu identifizieren und den vorherigen und folgenden Wert zu vergleichen.
Ist aber Panne!
Ergebnis: überall 0
https://www.herber.de/bbs/user/172094.xlsb
Kann bitte ein Experte mal draufschaun und mir eine Lösung vorschlagen?!
Gruss
Fred