Fußball und EDV
Seit es Fußball gibt werden die Ergebnisse der Spiele in Tabellenform beschrieben. Mit der zunehmenden Öffentlichkeitswirksamkeit des Fußballs geht eine Kommerzialisierung einher, die neben den erzielten Punkten und Toren auch Daten zu den Spielern und Finanzkennzahlen in die Bewertung des Geschehens herangezogen werden. Aber selten gibt es alle diese Zahlen an einem Ort, vielmehr muss man verschiedene Quellen heranziehen.
In diesem Beitrag werden Kenngrößen des österreichischen Bundesligabetriebs in einer Tabelle zusammengefasst. Am Beginn wird die interaktive Bundesliga-Kenngrößen-Tabelle der letzten 5 Saisonen präsentiert, danach kommt eine Beschreibung ihrer Entstehung.
Kenngrößen-Tabelle Bundesliga
- Saisonen: 2018/19, 2019/20, 2020/21, 2021/22, 2022/23 und Alle Saisonen
- Ligen: Bundesliga und 2. Liga
- Vereine: Admira, Altach, Amstetten, Austria, AustriaII, BW-Linz, Dornbirn, FAC, GAK, Hartberg, Horn, Innsbruck, InnsbruckII, JuniorsOÖ, Kapfenberg, Klagenfurt, LASK, Lafnitz, Liefering, Lustenau, Mattersburg, RB, Rapid, RapidII, Ried, StP, Steyr, Sturm, SturmII, Tirol, Vienna, WAC, Wattens, WrN und Alle Vereine
- Kennzahlenbereiche: Sport, Spieler, Bilanz, Ertrag
- Alle Spalten sind durch einen Klick auf die zugehörige Kopfzeile aufsteigend sortierbar, ein zweiter Klick sortiert absteigend.
- Bilanz- und Gewinnkennzahlen der Saison 2022/23 wurden von der Bundesliga noch nicht veröffentlicht.
Quellen
Folgende Quellen wurden für die Tabellen herangezogen:
Sport (Saison 2022/23)
- Weltfußball Bundesliga Meistergruppe
- Weltfußball Bundesliga Qualifikationsgruppe
- Weltfußball 2. Liga
Kennzahlen: Spiele, S (Siege), U (Unentschieden), N (Niederlagen), T0 (Tore erzielt), T1 (Gegentore), Tdiff (Tordifferenz), Pkte (Punkte)
Spieler (Saison 2022/23)
Kennzahlen: Kader, Alter, Legio (Legionäre), WertS (durchschnittlicher Wert eines Spielers), WertK (Wert des Kaders)
Finanzkennzahlen
Kennzahlen: Anlagevermögen, Umlaufvermögen, Eigenkapital, Fremdkapital; Erträge, Personalaufwand, Ergebnis (Jahresergebnis), Agenten (Spielevermittler)
Die Zahlen wurden für die Saisonen 2018/19, 2019/20, 2020/21, 2021/22 und 2022/23 erfasst. Die Finanzkennzahlen der Saison 2022/23 stehen derzeit noch nicht zur Verfügung und werden bei Erscheinen nachgetragen.
Excel-Tabelle
Alle Kenngrößen für alle Saisonen werden in einer bequem editierbaren Excel-Tabelle zusammengefasst.
Damit diese Tabelle auf einer Webseite benutzt werden kann, wird sie in eine CSV-Darstellung verwandelt: Dazu markiert man die Tabelle und kopiert sie in die Zwischenablage. Es entsteht folgende Tabulator-getrennte Tabelle (die ersten drei Zeilen werden hier dargestellt.
Saison Liga Platz Verein Spiele S U N T0 T1 Tdiff Pkte Anlage Umlauf Eigen Fremd Ertrag Personal Ergebnis Agenten Kader Alter Legio WertS WertK
2018/19 1 1 RB 32 25 5 2 79 27 52 52 33394 32113 44045 24323 119061 51750 23726 967 41 23,1 31 4300 176150
2018/19 1 2 LASK 32 18 9 5 59 31 28 40 4416 3714 213 7715 15303 7704 1252 405 39 24,0 16 759 29600
2018/19 1 3 WAC 32 12 10 10 47 47 0 31 3644 1182 390 2805 8337 4663 -141 179 30 25,0 7 452 13550
Um diese Tabelle als JavaScript-Code einzufügen, verwandelt man sie in eine lange Zeichenkette:
const Text = "Saison Liga Platz Verein Spiele S U N T0 T1 Tdiff Pkte Anlage Umlauf Eigen Fremd Ertrag Personal Ergebnis Agenten Kader Alter Legio WertS WertK##"
+ "2018/19 1 1 RB 32 25 5 2 79 27 52 52 33394 32113 44045 24323 119061 51750 23726 967 41 23,1 31 4300 176150##"
+ "2018/19 1 2 LASK 32 18 9 5 59 31 28 40 4416 3714 213 7715 15303 7704 1252 405 39 24,0 16 759 29600##"
+ "2018/19 1 3 WAC 32 12 10 10 47 47 0 31 3644 1182 390 2805 8337 4663 -141 179 30 25,0 7 452 13550##"
Um auf die einzelnen Spalten der Tabelle in JavaScript korrekt zugreifen zu können, wird die Tabelle in einer Funktion ConvertText() in eine benannte Tabelle umgewandelt:
var JSONdata = ""
var Vereine = []
var Saisonen = []
var Head = []
var Body = []
function GetItem(key,value) {
return "\"" + key + "\":" + value
}
function ConvertText() {
const Zeilen = Text.split("##")
Head = Zeilen[0].split("\t")
for (var z=1; z<Zeilen.length; z++) {
if ((Zeilen[z][0]=="") || (Zeilen[z][0]===undefined)) continue
Body.push(Zeilen[z].split("\t"))
}
Body.forEach(function(valueB,indexB){
JSONdata += (indexB==0 ? "" : ",") + "{"
Head.forEach(function(valueH, indexH){
var item = ""
var value = valueB[indexH]
value = (value===undefined ? "0" : value)
value = (value==="" ? "0" : value)
switch (valueH) {
case "Verein":
case "Saison":
item = GetItem(valueH,"\""+value+"\"")
break
case "Alter":
item = GetItem(valueH,value.replace(",","."))
break
default:
item = GetItem(valueH,value)
break
}
JSONdata += (indexH==0 ? "" : ",") + item
})
JSONdata += "}"
})
JSONdata = "[" + JSONdata +"]"
JSONdata = JSON.parse(JSONdata)
JSONdata.forEach(function(value){
if (!Vereine.includes(value.Verein))
Vereine.push(value.Verein)
if (!Saisonen.includes(value.Saison))
Saisonen.push(value.Saison)
})
Vereine.sort(function(a,b){
if (a>b) return 1
if (a', {
text: value1
}));
})
Saisonen.sort(function(a,b){
if (a>b) return -1
if (a', {
text: value1
}));
})
$('#select-saison').append($('
Die Spalte Anlage
der neuen Tabelle JSONdata
kann so angesprochen werden: JSONdata[23].Anlage
.
Programmcode
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=2.0, user-scalable=yes">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<script
src="https://code.jquery.com/jquery-3.7.0.min.js"
integrity="sha256-2Pmvv0kuTBOenSvLm6bvfBSSHrUJ+3A7x6P5Ebd07/g="
crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,500,0,200" />
<div class=" container-sm">
<div class="row">
<div class="col col-auto">
<select id="select-verein" class="form-select btn-primary">
<option selected>Alle Vereine</option>
</select>
</div>
<div class="col col-auto">
<select id="select-saison" class="form-select btn-primary">
</select>
</div>
</div>
<div class="row">
<div class="col col-auto">
<div class="btn-group" role="group" id="btn-liga">
<input type="radio" class="btn-check" name="btnliga" id="btncheck_1" autocomplete="off" checked>
<label class="btn btn-outline-primary" for="btncheck_1">1</label>
<input type="radio" class="btn-check" name="btnliga" id="btncheck_2" autocomplete="off">
<label class="btn btn-outline-primary" for="btncheck_2">2</label>
</div>
</div>
<div class="col col-auto">
<div class="btn-group" role="group">
<input type="radio" class="btn-check" name="category" id="btncheck_sport" autocomplete="off" checked>
<label class="btn btn-outline-primary" for="btncheck_sport">Bewerb</label>
<input type="radio" class="btn-check" name="category" id="btncheck_spieler" autocomplete="off">
<label class="btn btn-outline-primary" for="btncheck_spieler">Spieler</label>
<input type="radio" class="btn-check" name="category" id="btncheck_bilanz" autocomplete="off">
<label class="btn btn-outline-primary" for="btncheck_bilanz">Bilanz</label>
<input type="radio" class="btn-check" name="category" id="btncheck_gewinn" autocomplete="off">
<label class="btn btn-outline-primary" for="btncheck_gewinn">Gewinn</label>
</div>
</div>
</div>
<div class="row">
<div class="col col-3">
<table class="table table-sm">
<thead id="bilanz-head"></thead>
<tbody id="bilanz-table"></tbody>
</table>
</div>
</div>
</div>
<style>
td { font-size:10pt;font-family:Courier}
.right { text-align:right;}
.left { text-align:left; font-weight:bold;}
.l1 { background-color: white; }
.l2 { background-color: rgb(223, 220, 220); }
.rapid_ { background-color: rgb(209, 233, 209) !important; }
.title { text-align:center; font-weight:bold;}
.negativ { color:red; }
.sort { color: green; font-weight:bold; }
.headcell { white-space: nowrap;}
</style>
<script>
const Text = "Saison Liga Platz Verein Spiele S U N T0 T1 Tdiff Pkte Anlage Umlauf Eigen Fremd Ertrag Personal Ergebnis Agenten Kader Alter Legio WertS WertK##"
+ "2018/19 1 1 RB 32 25 5 2 79 27 52 52 33394 32113 44045 24323 119061 51750 23726 967 41 23,1 31 4300 176150##"
+ "2018/19 1 2 LASK 32 18 9 5 59 31 28 40 4416 3714 213 7715 15303 7704 1252 405 39 24,0 16 759 29600##"
+ "2018/19 1 3 WAC 32 12 10 10 47 47 0 31 3644 1182 390 2805 8337 4663 -141 179 30 25,0 7 452 13550##"
+ "2018/19 1 4 Austria 32 12 6 14 45 48 -3 27 70837 19192 4309 76175 38763 14576 2286 1502 34 24,1 12 879 29880##"
+ "2018/19 1 5 Sturm 32 10 10 12 37 40 -3 24 5419 5687 5362 4294 18940 10757 89 859 32 24,3 8 777 24850##"
+ "2018/19 1 6 StP 32 9 9 14 32 50 -18 21 546 2281 -886 3748 8374 5270 19 79 36 24,2 8 291 10480##"
+ "2018/19 1 7 Rapid 32 13 7 12 48 44 4 32 61248 10164 15106 45109 50745 22278 180 1391 37 23,7 11 935 34600##"
+ "2018/19 1 8 Altach 32 9 10 13 48 44 4 28 4530 2423 1801 2631 7386 4699 28 123 33 25,6 9 409 13500##"
+ "2018/19 1 9 Mattersburg 32 12 7 13 41 48 -7 28 6542 5969 5978 5576 11341 7493 -44 25 32 25,8 5 295 9430##"
+ "2018/19 1 10 Hartberg 32 10 5 17 48 66 -18 22 1198 359 -33 543 4308 2693 71 67 31 24,2 8 343 10630##"
+ "2018/19 1 11 Admira 32 8 9 15 42 62 -20 22 1929 1963 -1148 4777 6716 4597 -389 102 33 23,0 8 403 13300##"
+ "2018/19 1 12 Innsbruck 32 8 5 19 32 51 -19 20 55 1744 24 1788 9217 4617 489 444 37 23,8 9 334 12380##"
+ "2019/20 1 1 RB 32 22 8 2 110 34 76 50 40853 87342 84409 45079 183014 53682 40364 1009 32 23,5 26 6380 204100##"
+ "2019/20 1 2 Rapid 32 17 7 8 64 43 21 38 61395 10430 14907 45241 42068 18313 -199 1111 39 23,5 12 847 33050##"
+ "2019/20 1 3 WAC 32 15 9 8 69 43 26 35 3607 2501 2396 1971 13608 6324 2006 345 33 25,5 7 529 17450##"
+ "2019/20 1 4 LASK 32 20 4 8 67 37 30 33 8602 4887 4491 9482 34266 14642 4278 2558 29 25,4 7 903 26180##"
+ "2019/20 1 5 Hartberg 32 12 6 14 52 74 -22 27 1336 963 255 1048 4968 3346 288 87 30 25,9 6 289 8680##"
+ "2019/20 1 6 Sturm 32 10 5 17 46 60 -14 19 4678 5484 4124 4413 15837 9393 -1238 1692 35 25,6 7 612 21430##"
+ "2019/20 1 7 Austria 32 12 11 9 49 47 2 34 66001 5817 -14535 78030 22755 13916 -18844 827 32 24,3 11 567 18150##"
+ "2019/20 1 8 Altach 32 10 8 14 45 53 -8 26 6807 2537 1669 3284 7374 4248 -131 174 32 24,4 10 334 10700##"
+ "2019/20 1 9 StP 32 8 10 14 39 65 -26 25 326 2059 -1296 3741 8059 5141 -410 169 38 24,7 10 278 10550##"
+ "2019/20 1 10 Admira 32 6 10 16 29 57 -28 18 5567 3143 -1044 9479 9191 5328 0 463 35 23,9 9 318 11130##"
+ "2019/20 1 11 Tirol 32 6 8 18 34 66 -32 16 536 1863 683 1522 6339 3924 290 60 32 27,8 11 221 7080##"
+ "2020/21 1 1 RB 32 25 2 5 94 33 61 51 63233 54650 89384 29522 112122 53302 4975 912 35 23,1 26 5390 188700##"
+ "2020/21 1 2 Rapid 32 17 8 7 64 40 24 36 57293 19421 15605 49503 40475 21227 697 972 32 24,6 9 1350 43350##"
+ "2020/21 1 3 Sturm 32 16 8 8 52 34 18 36 5105 5576 3623 5880 14817 9611 -500 842 31 23,4 8 898 27850##"
+ "2020/21 1 4 LASK 32 15 6 11 55 41 14 30 14925 6999 4570 18155 23379 12910 79 584 35 24,4 13 1030 36130##"
+ "2020/21 1 5 WAC 32 13 5 14 52 62 -10 27 3437 5166 3886 3140 17503 7731 1491 1466 32 24,8 10 608 19450##"
+ "2020/21 1 6 Tirol 32 10 8 14 53 60 -7 23 3678 4830 1720 3782 7385 3781 1037 93 27 24,8 9 522 14100##"
+ "2020/21 1 7 Hartberg 32 12 11 9 38 48 -10 32 1438 1101 589 987 5880 4035 334 201 31 26,0 6 340 10530##"
+ "2020/21 1 8 Austria 32 11 9 12 47 43 4 29 60997 7130 -19223 79601 29925 13208 -4687 808 36 24,5 10 656 23600##"
+ "2020/21 1 9 Ried 32 8 9 15 34 57 -23 25 8130 1917 327 3592 8430 4965 491 235 33 24,8 7 279 9200##"
+ "2020/21 1 10 Altach 32 9 7 16 33 55 -22 23 6860 2662 2129 3042 8016 5236 460 203 33 25,9 11 324 10700##"
+ "2020/21 1 11 Admira 32 6 8 18 27 58 -31 19 1434 2733 -1629 5821 10287 7077 -469 519 44 24,0 12 277 12180##"
+ "2020/21 1 12 StP 32 5 9 18 39 57 -18 13 360 2039 -865 3322 8817 5017 431 100 33 24,1 12 370 12230##"
+ "2021/22 1 1 RB 32 25 5 2 77 19 58 52 86020 58484 104775 40189 152528 56540 15391 599 34 22,9 28 7740 263300##"
+ "2021/22 1 2 Sturm 32 16 8 8 62 46 16 37 7916 7393 5893 8430 28562 14470 2274 1856 34 23,5 9 1120 37930##"
+ "2021/22 1 3 Austria 32 11 13 8 44 39 5 29 56609 5732 -16281 71911 23583 12621 -7058 682 36 23,0 11 664 23900##"
+ "2021/22 1 4 WAC 32 14 5 13 48 53 -5 28 3250 4551 4055 2490 10245 5965 169 423 31 24,8 10 660 20480##"
+ "2021/22 1 5 Rapid 32 10 11 11 48 45 3 25 57214 19907 21360 44975 49631 20262 5756 759 43 23,3 8 1050 45280##"
+ "2021/22 1 6 Klagenfurt 32 8 12 12 43 57 -14 21 176 876 -7933 9021 5820 5915 -3152 20 36 24,6 19 360 12980##"
+ "2021/22 1 7 Tirol 32 10 10 12 46 58 -12 28 4058 4528 1975 3680 7810 4272 255 514 31 23,9 12 428 13280##"
+ "2021/22 1 8 LASK 32 9 12 11 44 42 2 26 44224 22445 5047 51243 30885 15104 477 885 39 25,0 15 790 30800##"
+ "2021/22 1 9 Altach 32 7 8 17 24 49 -25 22 6719 2717 2724 2170 10284 5745 595 290 37 26,0 8 256 9480##"
+ "2021/22 1 10 Ried 32 8 13 11 40 54 -14 22 8381 1633 1095 3116 10519 5421 858 215 30 24,8 8 319 9580##"
+ "2021/22 1 11 Hartberg 32 7 12 13 43 47 -4 22 1473 1855 1856 668 6373 4463 -99 231 32 26,4 8 372 11900##"
+ "2021/22 1 12 Admira 32 6 13 13 36 46 -10 21 1836 2150 -1631 5662 9547 6370 2 34 24,1 11 403 13700##"
+ "2022/23 1 1 RB 32 25 5 2 77 19 58 52 42 22,1 33 6360 267080##"
+ "2022/23 1 2 Sturm 32 16 8 8 62 46 16 37 36 23,6 14 2830 101980##"
+ "2022/23 1 3 LASK 32 11 13 8 44 39 5 29 39 25,3 16 1050 40780##"
+ "2022/23 1 4 Rapid 32 14 5 13 48 53 -5 28 35 24,5 7 974 34100##"
+ "2022/23 1 5 Austria 32 10 11 11 48 45 3 25 33 24,5 10 760 25080##"
+ "2022/23 1 6 Klagenfurt 32 8 12 12 43 57 -14 21 35 25,1 17 341 11930##"
+ "2022/23 1 7 WAC 32 12 11 9 38 48 -10 32 30 24,0 11 615 18450##"
+ "2022/23 1 8 Lustenau 32 11 9 12 47 43 4 29 28 23,3 15 428 11980##"
+ "2022/23 1 9 Tirol 32 8 9 15 34 57 -23 25 29 24,0 10 325 9430##"
+ "2022/23 1 10 Hartberg 32 9 7 16 33 55 -22 23 40 25,9 10 268 10730##"
+ "2022/23 1 11 Altach 32 6 8 18 27 58 -31 19 34 24,0 13 461 15680##"
+ "2022/23 1 12 Ried 32 5 9 18 39 57 -18 13 39 23,8 14 245 9550##"
+ "2018/19 2 1 Wattens 30 19 8 3 59 26 33 65 345 832 393 832 4017 2801 101 25 26,1 10 196 4900##"
+ "2018/19 2 2 Ried 30 18 9 3 61 21 40 63 9198 1381 -262 4013 5484 3426 -2 28 23,5 9 215 6030##"
+ "2018/19 2 3 Lustenau 30 14 8 8 55 34 21 50 129 409 -415 955 2694 1570 -435 30 21,8 17 151 4530##"
+ "2018/19 2 4 Kapfenberg 30 13 7 10 44 40 4 46 697 1107 -579 2384 2030 967 30 20 20,4 6 136 4080##"
+ "2018/19 2 5 BW-Linz 30 14 2 14 46 48 -2 44 ##"
+ "2018/19 2 6 WrN 30 12 8 10 39 41 -2 44 ##"
+ "2018/19 2 7 JuniorsOÖ 30 13 3 14 52 55 -3 42 491 483 717 289 1750 878 39 39 19,8 15 146 5680##"
+ "2018/19 2 8 Klagenfurt 30 9 14 7 43 35 8 41 40 205 -3640 3885 642 1016 -1858 37 22,8 18 122 4500##"
+ "2018/19 2 9 InnsbruckII 30 10 11 9 40 44 -4 41 40 20,6 5 157 6280##"
+ "2018/19 2 10 FAC 30 11 8 11 35 41 -6 41 236 309 111 293 1558 648 57 ##"
+ "2018/19 2 11 Amstetten 30 10 6 14 45 43 2 36 1830 275 669 51 1444 864 48 31 24,9 4 123 3800##"
+ "2018/19 2 12 Liefering 30 10 5 15 50 54 -4 35 930 1160 1 2250 17706 7005 0 45 18,6 24 559 25180##"
+ "2018/19 2 13 AustriaII 30 9 7 14 46 62 -16 34 49 20,8 12 242 11850##"
+ "2018/19 2 14 Lafnitz 30 8 9 13 36 42 -6 33 1218 5 361 654 1168 746 739 39 24,4 8 112 4380##"
+ "2018/19 2 15 Horn 30 6 7 17 33 62 -29 25 1688 575 1549 613 1662 750 2 37 22,5 9 101 3730##"
+ "2018/19 2 16 Steyr 30 5 6 19 32 68 -36 21 140 101 -326 521 1138 700 -100 34 23,7 7 90 3050##"
+ "2019/20 2 1 Ried 30 20 4 6 73 39 34 64 8529 1894 -164 4169 5387 2996 95 29 24,0 9 228 6630##"
+ "2019/20 2 2 Klagenfurt 30 19 7 4 65 36 29 64 40 595 1218 1853 1208 1971 -2088 31 23,5 17 163 5050##"
+ "2019/20 2 3 Liefering 30 15 8 7 73 47 26 53 580 882 51 2726 18084 8109 51 36 18,8 22 547 19700##"
+ "2019/20 2 4 AustriaII 30 14 6 10 62 44 18 48 ##"
+ "2019/20 2 5 Amstetten 30 12 9 9 51 47 4 45 1771 532 757 220 1808 1971 -2088 28 24,9 2 154 4330##"
+ "2019/20 2 6 Innsbruck 30 13 5 12 44 49 -5 44 69 1261 331 1018 3529 1749 -193 34 21,2 6 146 4980##"
+ "2019/20 2 7 Steyr 30 11 8 11 42 36 6 41 190 125 -321 566 1582 859 5 30 24,5 5 102 3050##"
+ "2019/20 2 8 Lafnitz 30 9 12 9 42 42 0 39 1118 102 369 645 1262 806 8 40 24,9 9 127 5080##"
+ "2019/20 2 9 JuniorsOÖ 30 10 8 12 50 63 -13 38 855 275 728 403 2166 1452 12 42 20,5 13 145 6100##"
+ "2019/20 2 10 BW-Linz 30 10 7 13 51 57 -6 37 144 431 -284 860 3249 1463 -113 32 22,3 8 134 4280##"
+ "2019/20 2 11 Lustenau 30 10 5 15 57 58 -1 35 93 999 -356 1457 2576 1457 59 42 22,8 22 148 6200##"
+ "2019/20 2 12 Dornbirn 30 8 10 12 40 59 -19 34 15 115 65 66 1100 418 84 33 22,9 5 105 3480##"
+ "2019/20 2 13 Horn 30 8 8 14 58 67 -9 32 1597 579 1482 596 1698 675 -57 33 22,8 6 134 4430##"
+ "2019/20 2 14 FAC 30 7 11 12 32 51 -19 32 211 512 427 277 1757 744 317 31 22,7 7 116 3600##"
+ "2019/20 2 15 GAK 30 7 10 13 40 50 -10 31 972 666 1063 579 2057 1 -529 37 23,9 9 111 4100##"
+ "2019/20 2 16 Kapfenberg 30 6 4 20 34 69 -35 22 698 972 19 1651 2579 849 598 41 21,2 14 82 3350##"
+ "2020/21 2 1 BW-Linz 30 20 3 7 70 31 39 63 135 765 186 714 2388 1390 65 28 23,1 4 215 6030##"
+ "2020/21 2 2 Liefering 30 19 6 5 69 31 38 63 478 1367 51 1855 18231 7007 0 36 18,7 20 1080 38930##"
+ "2020/21 2 3 Klagenfurt 30 17 8 5 64 32 32 59 96 857 -4781 5751 2087 3663 -3563 29 24,3 17 237 6880##"
+ "2020/21 2 4 Innsbruck 30 17 6 7 50 33 17 57 386 1819 245 1933 6364 4601 -2929 35 23,9 12 187 6540##"
+ "2020/21 2 5 Lafnitz 30 17 4 9 56 35 21 55 1051 136 396 600 1425 965 26 27 25,4 0 178 4800##"
+ "2020/21 2 6 GAK 30 13 7 10 46 42 4 46 254 1159 794 658 3472 1715 458 31 24,3 5 133 4110##"
+ "2020/21 2 7 Dornbirn 30 11 5 14 40 53 -13 38 11 271 69 217 1145 556 4 28 23,5 6 140 3930##"
+ "2020/21 2 8 JuniorsOÖ 30 10 7 13 38 49 -11 37 1432 1279 637 2078 2582 1916 -91 35 20,9 15 208 7280##"
+ "2020/21 2 9 FAC 30 10 6 14 39 41 -2 36 179 163 114 223 1316 862 -314 30 22,8 5 138 4140##"
+ "2020/21 2 10 Kapfenberg 30 9 6 15 34 51 -17 33 681 895 -302 1878 2034 1069 -321 42 21,0 14 104 4380##"
+ "2020/21 2 11 AustriaII 30 8 8 14 41 52 -11 32 42 20,6 6 263 11040##"
+ "2020/21 2 12 Amstetten 30 8 7 15 38 61 -23 31 1776 403 761 143 1619 1150 4 31 24,5 4 136 4220##"
+ "2020/21 2 13 Lustenau 30 8 6 16 44 55 -11 30 85 1174 -353 1612 2604 1524 3 30 22,4 13 157 4700##"
+ "2020/21 2 14 RapidII 30 8 6 16 37 53 -16 30 47 19,9 6 214 10040##"
+ "2020/21 2 15 Horn 30 8 6 16 40 62 -22 30 1836 789 1102 1275 1788 1044 -390 39 23,0 16 123 4820##"
+ "2020/21 2 16 Steyr 30 7 9 14 30 55 -25 30 273 387 -255 847 1575 955 66 33 23,8 5 120 3960##"
+ "2021/22 2 1 Lustenau 30 22 4 4 69 26 43 70 116 464 -1155 1746 2353 1764 -802 29 22,6 13 260 7530##"
+ "2021/22 2 2 FAC 30 20 5 5 51 18 33 65 142 212 65 296 1801 902 -49 32 22,6 6 168 5370##"
+ "2021/22 2 3 BW-Linz 30 15 9 6 51 27 24 54 89 493 92 492 2826 1604 -94 29 23,2 8 190 5510##"
+ "2021/22 2 4 Lafnitz 30 15 7 8 53 42 11 52 951 106 351 543 1576 1097 -45 35 24,3 0 144 5030##"
+ "2021/22 2 5 Amstetten 30 15 6 9 59 35 24 51 1672 276 386 328 2009 1692 -376 26 24,4 6 174 4520##"
+ "2021/22 2 6 Liefering 30 12 10 8 56 43 13 46 471 2082 51 2532 19106 8104 0 45 18,2 21 592 26630##"
+ "2021/22 2 7 GAK 30 13 7 10 47 39 8 46 264 1017 517 784 3542 2207 -279 34 23,4 5 132 4490##"
+ "2021/22 2 8 StP 30 12 6 12 43 38 5 42 835 641 -1182 2757 6732 3809 -317 35 23,2 9 156 5450##"
+ "2021/22 2 9 InnsbruckII 30 11 7 12 46 41 5 40 48 23,3 15 131 6270##"
+ "2021/22 2 10 Steyr 30 10 7 13 39 52 -13 37 598 224 -752 1198 1513 1246 -497 35 24,3 8 115 4010##"
+ "2021/22 2 11 RapidII 30 8 9 13 45 62 -17 33 44 20,1 4 228 10040##"
+ "2021/22 2 12 Kapfenberg 30 8 6 16 36 54 -18 30 667 512 -1204 2405 1660 1252 -901 42 21,1 15 96 4030##"
+ "2021/22 2 13 Horn 30 7 7 16 34 55 -21 28 1709 529 391 1641 1397 927 -681 30 23,0 10 133 3980##"
+ "2021/22 2 14 AustriaII 30 6 7 17 31 56 -25 25 45 20,8 10 312 14030##"
+ "2021/22 2 15 JuniorsOÖ 30 4 11 15 37 71 -34 23 38 20,5 9 213 8110##"
+ "2021/22 2 16 Dornbirn 30 6 4 20 35 73 -38 22 10 291 -15 316 724 728 -84 32 23,4 8 131 4200##"
+ "2022/23 2 1 BW-Linz 30 19 4 7 63 27 36 61 25 24,6 6 239 5970##"
+ "2022/23 2 2 GAK 30 17 9 4 52 29 23 60 33 24,1 7 158 5220##"
+ "2022/23 2 3 StP 30 17 5 8 51 27 24 56 29 23,8 12 205 5950##"
+ "2022/23 2 4 Horn 30 13 9 8 38 33 5 48 33 22,6 8 145 4790##"
+ "2022/23 2 5 FAC 30 12 9 9 41 30 11 45 28 23,4 4 142 3980##"
+ "2022/23 2 6 Amstetten 30 12 9 9 49 49 0 45 29 23,6 4 149 4330##"
+ "2022/23 2 7 Vienna 30 12 7 11 34 33 1 43 34 23,4 5 124 4210##"
+ "2022/23 2 8 Lafnitz 30 12 5 13 48 46 2 41 29 24,6 3 171 4960##"
+ "2022/23 2 9 Liefering 30 11 4 15 52 54 -2 37 40 18,7 17 843 33730##"
+ "2022/23 2 10 Admira 30 10 6 14 39 42 -3 36 35 22,3 9 139 4880##"
+ "2022/23 2 11 Dornbirn 30 10 5 15 43 44 -1 35 31 22,2 9 131 4080##"
+ "2022/23 2 12 SturmII 30 10 4 16 43 56 -13 34 39 20,0 7 415 16180##"
+ "2022/23 2 13 Kapfenberg 30 9 7 14 40 56 -16 34 36 21,7 10 114 4110##"
+ "2022/23 2 14 Steyr 30 8 8 14 36 54 -18 32 33 23,8 5 126 4160##"
+ "2022/23 2 15 RapidII 30 7 9 14 33 55 -22 30 47 20,5 5 250 11750##"
+ "2022/23 2 16 AustriaII 30 7 8 15 34 61 -27 29 42 21,0 12 229 9610##"
var sort_col = ""
var sort_dir = 1
var show_l1 = false
var show_l2 = false
var show_sport = false
var show_bilanz = false
var show_gewinn = false
var show_spieler = false
var JSONdata = ""
var Vereine = []
var Saisonen = []
function ButtonCheck() {
var Verein = $('#select-verein').find(":selected").text()
if (Verein=="Alle Vereine") {
$("#select-saison").show()
$("#btn-liga").show()
var Saison = $('#select-saison').find(":selected").text()
show_season_2018 = (Saison=="2018/19") || (Saison=="Alle Saisonen")
show_season_2019 = (Saison=="2019/20") || (Saison=="Alle Saisonen")
show_season_2020 = (Saison=="2020/21") || (Saison=="Alle Saisonen")
show_season_2021 = (Saison=="2021/22") || (Saison=="Alle Saisonen")
show_season_2022 = (Saison=="2022/23") || (Saison=="Alle Saisonen")
show_l1 = false
show_l2 = false
if ($("#btncheck_12").prop("checked")) {
show_l1 = true
show_l2 = true
} else if ($("#btncheck_1").prop("checked")) show_l1 = true
else if ($("#btncheck_2").prop("checked")) show_l2 = true
} else {
$("#select-saison").hide()
$("#btn-liga").hide()
show_season_2018 = true
show_season_2019 = true
show_season_2020 = true
show_season_2021 = true
show_season_2022 = true
show_l1 = true
show_l2 = true
}
show_sport = ($("#btncheck_sport").prop("checked") ? true : false)
show_bilanz = ($("#btncheck_bilanz").prop("checked") ? true : false)
show_gewinn = ($("#btncheck_gewinn").prop("checked") ? true : false)
show_spieler = ($("#btncheck_spieler").prop("checked") ? true : false)
}
function ButtonExecute() {
if (show_season_2018 && show_l1) { $(".s2018l1").show() } else { $(".s2018l1").hide() }
if (show_season_2018 && show_l2) { $(".s2018l2").show() } else { $(".s2018l2").hide() }
if (show_season_2019 && show_l1) { $(".s2019l1").show() } else { $(".s2019l1").hide() }
if (show_season_2019 && show_l2) { $(".s2019l2").show() } else { $(".s2019l2").hide() }
if (show_season_2020 && show_l1) { $(".s2020l1").show() } else { $(".s2020l1").hide() }
if (show_season_2020 && show_l2) { $(".s2020l2").show() } else { $(".s2020l2").hide() }
if (show_season_2021 && show_l1) { $(".s2021l1").show() } else { $(".s2021l1").hide() }
if (show_season_2021 && show_l2) { $(".s2021l2").show() } else { $(".s2021l2").hide() }
if (show_season_2022 && show_l1) { $(".s2022l1").show() } else { $(".s2022l1").hide() }
if (show_season_2022 && show_l2) { $(".s2022l2").show() } else { $(".s2022l2").hide() }
if (show_season_2018 && show_season_2019 && show_season_2020 && show_season_2021 && show_season_2022 ) {
$(".saison").show()
} else $(".saison").hide()
if (show_l1 && show_l2) {
$(".liga").show()
} else $(".liga").hide()
var Verein = $('#select-verein').find(":selected").text()
if (Verein!="Alle Vereine") {
Vereine.forEach(function(value){
$("."+value).hide()
})
$("."+Verein).show()
}
if (show_sport) { $(".sport").show() } else { $(".sport").hide() }
if (show_bilanz) { $(".bilanz").show() } else { $(".bilanz").hide() }
if (show_gewinn) { $(".gewinn").show() } else { $(".gewinn").hide() }
if (show_spieler) { $(".spieler").show() } else { $(".spieler").hide() }
}
function GetMoney(value){
var negativ = false
if (value*1<0) {
negativ = true
value = (value+"").substring(1)
}
value = value+""
switch (value.length) {
case 6:
value = value.substring(0,3)+","+value.substring(3,4) + "M"
break
case 5:
value = value.substring(0,2)+","+value.substring(2,3) + "M"
break
case 4:
value = value.substring(0,1)+","+value.substring(1,2) + "M"
break
case 3:
value = "0,"+value.substring(0,1) + "M"
break
case 2:
value = "0,0"+value.substring(0,1) + "M"
break
case 1:
value = "0,00"+value + "M"
break
}
value = (negativ ? "-" : "") + value
return value
}
function GetCell(value,format) {
if (value*1<0) format += " negativ"
return "<td class='"+format+"'>"+value+"</td>"
}
function GetCellMoney(value,format) {
if (value*1==0)
return "<td class='"+format+"' title='keine Angabe'>•</td>"
else {
value1 = GetMoney(value)
if (value1[0]=="-") format += " negativ"
return "<td class='"+format+"' title='"+value+"'>"+value1+"</td>"
}
}
function GetRow(row) {
const Liga = (row.Liga==1 ? "l1" : "l2")
const Saison = " s" + row.Saison.substring(0,4)
const SaisonLiga = Saison+Liga
const Verein = " " + row.Verein
const Rapid = (row.Verein.includes("Rapid") ? " rapid_" : "")
const Classes = Saison + Liga + Verein + Rapid
var s = "<tr class='"+ Classes + "'>"
s += GetCell(row.Saison, "left saison" + Classes)
s += GetCell(row.Liga, "right liga" + Classes)
s += GetCell(row.Platz, "right" + Classes)
s += GetCell(row.Verein,"left" + Classes)
s += GetCell(row.Spiele,"right sport" + Classes)
s += GetCell(row.S,"right sport" + Classes)
s += GetCell(row.U,"right sport" + Classes)
s += GetCell(row.N,"right sport" + Classes)
s += GetCell(row.T0,"right sport" + Classes)
s += GetCell(row.T1,"right sport" + Classes)
s += GetCell(row.Tdiff,"right sport" + Classes)
s += GetCell(row.Pkte,"right sport" + Classes)
s += GetCell(row.Kader,"right spieler" + Classes)
var Alter = (row.Alter+"").includes(".") ? row.Alter : row.Alter+".0"
s += GetCell(Alter,"right spieler" + Classes)
s += GetCell(row.Legio,"right spieler" + Classes)
s += GetCellMoney(row.WertS,"right spieler" + Classes)
s += GetCellMoney(row.WertK,"right spieler" + Classes)
s += GetCellMoney(row.Anlage,"right bilanz" + Classes)
s += GetCellMoney(row.Umlauf,"right bilanz" + Classes)
s += GetCellMoney(row.Eigen,"right bilanz" + Classes)
s += GetCellMoney(row.Fremd,"right bilanz" + Classes)
s += GetCellMoney(row.Ertrag,"right gewinn" + Classes)
s += GetCellMoney(row.Personal,"right gewinn" + Classes)
s += GetCellMoney(row.Ergebnis,"right gewinn" + Classes)
s += GetCellMoney(row.Agenten,"right gewinn" + Classes)
s += "</tr>\n"
return s
}
function DrawTable(title,dir) {
$(".sort").hide()
ButtonCheck()
if (title===undefined) {
} else {
if (dir===undefined) {
} else {
sort_dir = dir
}
if (title==sort_col) {
sort_dir *= -1
} else {
sort_col = title
sort_dir = 1
}
$("#s"+sort_col).html(sort_dir==1
? "<span class='material-symbols-outlined'>north</span>"
: "<span class='material-symbols-outlined'>south</span>" )
$("#s"+sort_col).show()
var s = ""
JSONdata.sort(function(a,b){
a = eval("a."+title)
b = eval("b."+title)
if (a>b) return sort_dir
if (a<b) return -sort_dir
return 0
})
}
JSONdata.forEach(function(value) {
s += GetRow(value)
})
$("#bilanz-table").html(s)
ButtonExecute()
}
var Head = []
var Body = []
function GetItem(key,value) {
return "\"" + key + "\":" + value
}
function ConvertText() {
const Zeilen = Text.split("##")
Head = Zeilen[0].split("\t")
for (var z=1; z<Zeilen.length; z++) {
if ((Zeilen[z][0]=="") || (Zeilen[z][0]===undefined)) continue
Body.push(Zeilen[z].split("\t"))
}
Body.forEach(function(valueB,indexB){
JSONdata += (indexB==0 ? "" : ",") + "{"
Head.forEach(function(valueH, indexH){
var item = ""
var value = valueB[indexH]
value = (value===undefined ? "0" : value)
value = (value==="" ? "0" : value)
switch (valueH) {
case "Verein":
case "Saison":
item = GetItem(valueH,"\""+value+"\"")
break
case "Alter":
item = GetItem(valueH,value.replace(",","."))
break
default:
item = GetItem(valueH,value)
break
}
JSONdata += (indexH==0 ? "" : ",") + item
})
JSONdata += "}"
})
JSONdata = "[" + JSONdata +"]"
JSONdata = JSON.parse(JSONdata)
JSONdata.forEach(function(value){
if (!Vereine.includes(value.Verein))
Vereine.push(value.Verein)
if (!Saisonen.includes(value.Saison))
Saisonen.push(value.Saison)
})
Vereine.sort(function(a,b){
if (a>b) return 1
if (a<b) return -1
return 0
})
Vereine.forEach(function(value1){
$('#select-verein').append($('<option>', {
text: value1,
value: value1
}));
})
Saisonen.sort(function(a,b){
if (a>b) return -1
if (a<b) return 1
return 0
})
Saisonen.forEach(function(value1, index){
$('#select-saison').append($('<option>', {
text: value1,
value: value1
}));
})
$('#select-saison').append($('<option>', {
text: "Alle Saisonen"
}));
}
function GetHead(title,class1) {
return "<td class='" + class1 + "'>"
+ title
+ "</td>"
/*
return "<td class='headcell "+title+" " +class1 + "'>"
+ "<span class='"+class1+"'>"+title+"</span>"
+ "<span class='sort' id='s"+title+"'></span>"
+ "</td>"
*/
}
function DrawHead() {
var s = "<tr>"
s += GetHead("Saison","title saison")
s += GetHead("Liga","title liga")
s += GetHead("Platz","title")
s += GetHead("Verein","title")
s += GetHead("Spiele","title sport")
s += GetHead("S","title sport")
s += GetHead("U","title sport")
s += GetHead("N","title sport")
s += GetHead("T0","title sport")
s += GetHead("T1","title sport")
s += GetHead("Tdiff","title sport")
s += GetHead("Pkte","title sport")
s += GetHead("Anlage","title bilanz")
s += GetHead("Umlauf","title bilanz")
s += GetHead("Eigen","title bilanz")
s += GetHead("Fremd","title bilanz")
s += GetHead("Ertrag","title gewinn")
s += GetHead("Personal","title gewinn")
s += GetHead("Ergebnis","title gewinn")
s += GetHead("Agenten","title gewinn")
s += GetHead("Kader","title spieler")
s += GetHead("Alter","title spieler")
s += GetHead("Legio","title spieler")
s += GetHead("WertS","title spieler")
s += GetHead("WertK","title spieler")
s += "</tr>\n"
$("#bilanz-head").html(s)
}
$(document).on("click",".title",function(){
DrawTable(this.innerHTML)
})
$(document).on("change","#select-verein",function(){
DrawTable("Platz",-1)
})
$(document).on("change","#select-saison",function(){
DrawTable("Platz",-1)
})
$(".btn-check").click(function(){
DrawTable()
})
ConvertText()
DrawHead()
DrawTable()
</script>
Download
Franz war pensionierter HTL Lehrer (TGM), Präsident von ClubComputer, Herausgeber der Clubzeitung PCNEWS und betreute unser Clubtelefon und Internet Support. Er war leidenschaftlicher Rapid Wien Fan. Er ist leider Anfang Jänner 2024 nach langer schwerer Krankheit verstorben.
Irgendwie kann man sich nicht des Eindruckes erwehren, dass du ein Rapid-Anhänger bist.
Gut, jeder macht Fehler im Leben – trotzdem alles gute Franz.
Deine Anmerkung trifft es sehr gut, dass man sich eigene Fehler und Dummheiten im Laufe des Lebens schön redet, unter dem Motto „Die Leut‘ san alle deppert, außer mir.“ (Georg Danzer).