Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tennisergebnisse aufsplitten per Makro

Tennisergebnisse aufsplitten per Makro
07.11.2018 14:49:40
Jakob
Hallo zusammen,
ich arbeite an einer Tenniswettexcel Programmierung und kommen beim umschreiben der Ergebnisse nicht weiter.
Ein Matchergebnis kann wie folgt lauten:
6-3 6-4
oder
7-6(9) 6-7(9) 7-6(5)
die 9 in der Klammer würde bedeuten dass das Tie Break 11:9 für den 7er ausgegangen ist.
Jetzt versuche ich das Ergebnisse wie folgt aufzusplitten (max 5 Sätze - also 15 Spalten:
Spalte A (Ergebnis Satz 1 )
7:6
Spalte B (Tie Break ja oder nein)
Ja
Spalte C (Ausgang des Tiebreaks)
11:9

Spalte D (Ergebnis Satz 2 )
6:7
etc.
Leider weiß ich nicht, wie ich das in diese Form bekomme, da die Länge sowie die Anzahl der Tie Breaks variabel sind.
Kann mir da jemand helfen?

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tennisergebnisse aufsplitten per Makro
07.11.2018 15:03:32
{Boris}
Hi,
bei Stringzerlegung muss man sich immer an etwas verlässlichem orientieren:
Ist es IMMER das Leerzeichen zwischen den Sätzen?
Zusatzfrage: Werden die Daten so importiert oder so eingegeben? Falls Letzteres, stellt sich die Frage: Weshalb?
VG, Boris
AW: Tennisergebnisse aufsplitten per Makro
07.11.2018 15:12:37
Jakob
Ad. Zusatzfrage : Servus, ja leider habe das aus einer Datenbank runtergeladen.
Das Leerzeichen ist immer zu finden. jedoch kann der String eine variable Anzahl an Zeichen haben.
Ein Tiebreakergebnis folgt immer eine Klammer mit dem Wert des unterliegendem.
Siehe
3-6 7-6(6) 7-6(4)
6-2 7-5
6-1 6-3
4-6 6-2 7-5
6-1 6-4
6-7(2) 6-4 6-3
6-7(7) 7-6(2) 7-6(3)
6-2 6-1
6-2 6-3
6-1 3-6 7-6(4)
6-4 6-2
6-3 6-2
6-3 7-5
4-6 6-4 6-4
Anzeige
AW: Tennisergebnisse aufsplitten per Makro
07.11.2018 15:25:47
{Boris}
Hi,
ohne "echtes" VBA: https://www.herber.de/bbs/user/125234.xlsm
Mit der alten Excel4-Makrofunktion AUSWERTEN.
Ergebnis in Spalte Spalte A, der Test wird ermittelt.
Formeln aus B bis U dann noch runterkopieren.
VG, Boris
AW: Tennisergebnisse aufsplitten per Makro
07.11.2018 15:32:12
Jakob
Wow danke!!!
LG Jakob
AW: https://www.herber.de/bbs/user/99024.xlsm
07.11.2018 15:21:26
Jakob
Ja die Funktion hab ich mir schon angeschaut also "Split"
jedoch mit den Parametern:
Split ( expression [,delimiter] [,limit] [,compare] )
ok Expression ist klar - das Ergebnis
delimiter Leerzeile auch ok.
Jetzt habe ich aber noch immer die Variable ob in den Sätzen 1,2,3,4,5 ein Tiebreak stattfand.
AW: Tennisergebnisse aufsplitten per Makro
07.11.2018 15:14:37
Daniel
Hi
direkt im Blatt oder in Variablen in einer Excelprogrammierung?
im Prinzip am einfachsten so
1. ersetze " " durch ";nein;;"
2. ersetze "(" durch ";ja;"
3. ersetze ");nein;" durch ""
4. ersetze ")" durch ""
dann splitte den Text am ";" in seine Teiltexte auf
im Tabellenblatt mit Text IN Spalten, in VBA mit der Funktion SPLIT
im Tiebreak-Ergebnis dann den fehlenden Werte zu ergänzen wird dann etwas komplizierter, da musst du mit einer Schleife über die Werte laufen und das machen.
Gruß Daniel
Anzeige
AW: Tennisergebnisse aufsplitten per Makro
07.11.2018 15:16:47
Jakob
am schönsten wärs natürlich in einer Excel Programmierung.
Ad. 1. ersetze " " durch ";nein;;"
2. ersetze "(" durch ";ja;"
3. ersetze ");nein;" durch ""
4. ersetze ")" durch ""
dann würde ja nach jedem Leerzeichen ein nein kommen, was aber nicht unbedingt stimmt.
AW: Tennisergebnisse aufsplitten per Makro
07.11.2018 15:32:10
Daniel
Hi
auch in VBA gibst die Funktion Replace, sogar 2x
entweder steuerst du damit die Excelmenü-Funtion ERSETTZEN oder du kannst die Ersetzung in einem Textstring durchführen.
x = "axxxc"
x = Replace(x, "xxx", "c")

zu deinem Einwand:
ja im Schritt 1 wird bei jedem Leerzeichen ein "nein" eingefügt, aber wenn du auch nur 2 zeilen weiter gelesen hättest, dann hättst du gesehen dass im Falle eines TieBreaks dieses "nein" wieder aus dem Text entfernt wird.
so spare ich mir aufwendige Schleifen und Fallunterscheidungen.
Gruß Daniel
Anzeige
AW: Tennisergebnisse aufsplitten per Makro
07.11.2018 15:35:44
Jakob
ahh ok danke, so war das gemeint :D
Danke!, ich werds mal versuchen zu implementieren!
Formel kann in VBA verwendet werden
07.11.2018 16:17:03
lupo1
B2[:U2]:
=WENN(SPALTE()&lt7;
GLÄTTEN(TEIL(WECHSELN($A2;" ";WIEDERHOLEN(" ";49));SPALTE(A1)*49-48;49));
WAHL(REST(SPALTE();3)+1;
WENN(A2="Ja";-(TEIL(INDEX(2:2;SPALTE(A2)/3);4;9)-(--LINKS(INDEX(2:2;SPALTE(A2)/3))=7)*2)&":"&-(TEIL(INDEX(2:2;SPALTE(A2)/3);4;9)-(--TEIL(INDEX(2:2;SPALTE(A2)/3);3;1)=7)*2);"");
WECHSELN(LINKS(INDEX(2:2;SPALTE(A2)/3);3);"-";":");
WENN(TEIL(INDEX(2:2;SPALTE(A2)/3);4;1)="(";"Ja";"")))

Die Spalten B:F sind dabei Hilfsspalten für die einzelnen Sätze;
die 15 gesuchten Spalten finden sich anschließend in G:U
Anzeige
Da haste aber ...
07.11.2018 16:25:56
{Boris}
Hi Lupo,
...Dein Meisterstück formuliert ;-))
Hab’s nicht getestet - gehe aber natürlich davon aus, dass es funzt!
VG Boris
und das auch noch für diese "Wett-Halbwelt" ...
07.11.2018 16:32:58
lupo1
... aber von dort kommen immer interessante Problemchen.
In A2 - ich vergaß es zu schreiben - kommt der String, an dem übrigens alles richtig sein muss - also auch keine versehentlichen 2 Leerzeichen hintereinander.
AW: und das auch noch für diese "Wett-Halbwelt" ...
07.11.2018 16:47:13
{Boris}
Hi Lupo,
...interessante Problemchen...
So ist es. Das macht den Reiz aus. :-)
VG Boris
Da gabs noch nen Fehler im Tie-Break
08.11.2018 23:52:39
lupo1
Der geht nämlich immer mit 7 oder höher für den Gewinner aus (andere Regeln aber denkbar). In meiner vorigen Formel hätte aber eine 7:6(3) einen Satzergebnis von
7:6 Ja 5:3 bedeutet, was falsch ist.
7:6 Ja 7:3 ist richtig.
___________________________________________________________
Also noch einmal:
A2: das Match-Ergebnis
B2[:U2]:
=WENN(SPALTE()&lt7;
GLÄTTEN(TEIL(WECHSELN($A2;" ";WIEDERHOLEN(" ";49));SPALTE(A1)*49-48;49));
WAHL(REST(SPALTE();3)+1;
WENN(A2="Ja";
MAX(-(TEIL(INDEX(2:2;SPALTE(A2)/3);4;9)-(--TEIL(INDEX(2:2;SPALTE(A2)/3);1;1)=7)*2);(--TEIL(INDEX(2:2;SPALTE(A2)/3);1;1)=7)*7)&":"&
MAX(-(TEIL(INDEX(2:2;SPALTE(A2)/3);4;9)-(--TEIL(INDEX(2:2;SPALTE(A2)/3);3;1)=7)*2);(--TEIL(INDEX(2:2;SPALTE(A2)/3);3;1)=7)*7);"");
WECHSELN(TEIL(INDEX(2:2;SPALTE(A2)/3);1;3);"-";":");
WENN(TEIL(INDEX(2:2;SPALTE(A2)/3);4;1)="(";"Ja";"")))

oder auch anders aligned wiedergegeben:
=WENN(SPALTE()&lt7;
GLÄTTEN(TEIL(WECHSELN($A2;" ";WIEDERHOLEN(" ";49));SPALTE(A1)*49-48;49));
WAHL(REST(SPALTE();3)+1;
WENN(A2="Ja";MAX(-(
TEIL(INDEX(2:2;SPALTE(A2)/3);4;9)-(--
TEIL(INDEX(2:2;SPALTE(A2)/3);1;1)=7)*2);(--
TEIL(INDEX(2:2;SPALTE(A2)/3);1;1)=7)*7)&":"&MAX(-(
TEIL(INDEX(2:2;SPALTE(A2)/3);4;9)-(--
TEIL(INDEX(2:2;SPALTE(A2)/3);3;1)=7)*2);(--
TEIL(INDEX(2:2;SPALTE(A2)/3);3;1)=7)*7);"");WECHSELN(
TEIL(INDEX(2:2;SPALTE(A2)/3);1;3);"-";":");WENN(
TEIL(INDEX(2:2;SPALTE(A2)/3);4;1)="(";"Ja";"")))

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige