Skip to content

Formeln

Michael Massee edited this page Aug 6, 2026 · 4 revisions

Formeln (Calc-Funktionen)

Das Plugin stellt eigene Calc-Funktionen mit den Präfixen PTM.ALG., PTM.CADRAGE., PTM.SUPERMELEE., PTM.POULE., PTM.DB.SPIELER. und PTM.PLANUNG. bereit. Diese können in beliebigen Zellen des Turnierdokuments verwendet werden.


PTM.ALG.TURNIERSYSTEM()

Parameter: keine

Rückgabe: String

Gibt den Namen des im Dokument aktiven Turniersystems zurück.

Mögliche Rückgabewerte:

  • "Supermelée"
  • "Liga"
  • "Jeder gegen Jeden"
  • "Maastricht"
  • "Schweizer"
  • "K.-O."
  • "Poule A/B"
  • "Kaskaden-KO"
  • "Formule X"
  • "Trip-Tête"
  • "Kein" (kein Turniersystem aktiv)

Beispiel:

=PTM.ALG.TURNIERSYSTEM()

PTM.ALG.INTPROPERTY(propname)

Parameter:

  • propname – Name der Dokumenteigenschaft (String)

Rückgabe: Integer (0, wenn die Eigenschaft nicht vorhanden ist)

Liest einen ganzzahligen Konfigurationswert aus den Dokumenteigenschaften. Nützlich für eigene Formeln, die auf die Turnierkonfiguration zugreifen.

Beispiel:

=PTM.ALG.INTPROPERTY("AnzahlRunden")

PTM.ALG.STRINGPROPERTY(propname)

Parameter:

  • propname – Name der Dokumenteigenschaft (String)

Rückgabe: String (Fehlermeldung, wenn die Eigenschaft nicht vorhanden ist)

Liest einen Text-Konfigurationswert aus den Dokumenteigenschaften.

Beispiel:

=PTM.ALG.STRINGPROPERTY("TurnierName")

PTM.ALG.DIREKTVERGLEICH(teamA; teamB; begegnungen; siege; spielpunkte)

Parameter:

  • teamA – Team-ID von Team A (Integer)
  • teamB – Team-ID von Team B (Integer)
  • begegnungen – 2D-Array mit Spielpaarungen [team1_id, team2_id]
  • siege – 2D-Array mit Siegen [siege_team1, siege_team2]
  • spielpunkte – 2D-Array mit Punkten [punkte_team1, punkte_team2]

Rückgabe: Integer-Code

Code Bedeutung
2 Team A hat den Direktvergleich gewonnen
1 Team A hat den Direktvergleich verloren
0 Unentschieden
3 Kein Ergebnis (Teams haben nie gegeneinander gespielt)
-1 Fehler (ungültige Parameter)

Berechnet den Direktvergleich zwischen zwei Teams nach Pétanque-Regeln:

  1. Mehr Siege gewinnt
  2. Bei Gleichstand der Siege: mehr Spielpunkte gewinnt
  3. Sonst: Unentschieden

Beispiel (Liga/JgJ):

=PTM.ALG.DIREKTVERGLEICH(A2; B2; Paarungen; Siege; Punkte)

PTM.ALG.BOOLEANPROPERTY(propname)

Parameter: propname – Name der Dokumenteigenschaft (String) Rückgabe: Integer (0/1)

Liest einen Boolean-Konfigurationswert aus den Dokumenteigenschaften.

=PTM.ALG.BOOLEANPROPERTY("SetzpositionenBeachten")

PTM.ALG.AKTUELLE_RUNDE()

Rückgabe: Integer (0 wenn kein Turnier aktiv)

Gibt die aktuelle Rundennummer zurück.


PTM.ALG.AKTUELLE_SPIELTAG()

Rückgabe: Integer (0 wenn kein Spieltag vorhanden)

Gibt den aktuellen Spieltag zurück (relevant für Supermêlée).


PTM.ALG.OPERATION_AKTIV()

Rückgabe: Integer (1 = aktiv, 0 = inaktiv)

Gibt 1 zurück, wenn gerade eine Hintergrund-Operation (z. B. Rangliste berechnen) läuft.


PTM.ALG.TEAMANZEIGE(teamnameAnzeigen; anzSpieler; vereinsnameAnzeigen; meldelistenZeile)

Parameter:

  • teamnameAnzeigen – 1, wenn die Meldeliste eine Teamname-Spalte verwendet, sonst 0
  • anzSpieler – Anzahl Spieler je Team laut Formation
  • vereinsnameAnzeigen – 1, wenn Vereinsnamen pro Spieler angezeigt werden, sonst 0
  • meldelistenZeile – eine komplette Meldelisten-Zeile, z. B. per INDEX/VERGLEICH

Rückgabe: String

Formatiert eine Meldelisten-Zeile als Team-Anzeigetext.


PTM.CADRAGE.* – Cadrage-Berechnungen (KO-System)

Alle Funktionen nehmen anzTeams (Gesamtanzahl der Teams) als Parameter.

Funktion Rückgabe
PTM.CADRAGE.ANZ_TEAMS(anzTeams) Anzahl der Teams, die eine Cadrage-Partie spielen müssen
PTM.CADRAGE.ZIEL_ANZ(anzTeams) Ziel-Teamanzahl nach der Cadrage (größte Zweierpotenz ≤ anzTeams)
PTM.CADRAGE.ANZ_OHNE_CADRAGE(anzTeams) Anzahl der Teams ohne Cadrage (starten direkt in der Hauptrunde)

PTM.SUPERMELEE.* – Doublette/Triplette-Berechnungen

Alle Funktionen nehmen anzSpieler (Anzahl aktiver Spieler) als Parameter.

Funktion Rückgabe
PTM.SUPERMELEE.TRIPL_ANZ_DOUBLETTE(anzSpieler) Anzahl Doublette-Teams im Triplette-Modus
PTM.SUPERMELEE.TRIPL_ANZ_TRIPLETTE(anzSpieler) Anzahl Triplette-Teams im Triplette-Modus
PTM.SUPERMELEE.TRIPL_NUR_DOUBLETTE(anzSpieler) 1, wenn im Triplette-Modus ausschließlich Doublette-Teams möglich sind
PTM.SUPERMELEE.TRIPL_ANZ_PAARUNGEN(anzSpieler) Anzahl Paarungen (Spiele) im Triplette-Modus
PTM.SUPERMELEE.TRIPL_ANZ_BAHNEN(anzSpieler) Anzahl benötigter Bahnen im Triplette-Modus
PTM.SUPERMELEE.DOUBL_ANZ_DOUBLETTE(anzSpieler) Anzahl Doublette-Teams im Doublette-Modus
PTM.SUPERMELEE.DOUBL_ANZ_TRIPLETTE(anzSpieler) Anzahl Triplette-Teams im Doublette-Modus
PTM.SUPERMELEE.DOUBL_NUR_TRIPLETTE(anzSpieler) 1, wenn im Doublette-Modus ausschließlich Triplette-Teams möglich sind
PTM.SUPERMELEE.DOUBL_ANZ_PAARUNGEN(anzSpieler) Anzahl Paarungen (Spiele) im Doublette-Modus
PTM.SUPERMELEE.DOUBL_ANZ_BAHNEN(anzSpieler) Anzahl benötigter Bahnen im Doublette-Modus
PTM.SUPERMELEE.VALIDE_ANZ_SPIELER(anzSpieler) 1, wenn die Spieleranzahl für ein Turnier gültig ist (nicht 7)
PTM.SUPERMELEE.ANZ_TRIPLETTE_WENN_NUR_TRIPLETTE(anzSpieler) Anzahl Triplette-Teams, wenn ausschließlich Triplette möglich ist, sonst 0
PTM.SUPERMELEE.ANZ_DOUBLETTE_WENN_NUR_DOUBLETTE(anzSpieler) Anzahl Doublette-Teams, wenn ausschließlich Doublette möglich ist, sonst 0

PTM.POULE.* – Gruppeneinteilung (Poule-AB)

Alle Funktionen nehmen anzTeams (Gesamtanzahl der Teams, mindestens 3) als Parameter.

Funktion Rückgabe
PTM.POULE.ANZ_GRUPPEN(anzTeams) Gesamtanzahl der Gruppen (Vierer- + Dreiergruppen)
PTM.POULE.ANZ_VIERER_GRUPPEN(anzTeams) Anzahl der 4er-Gruppen
PTM.POULE.ANZ_DREIER_GRUPPEN(anzTeams) Anzahl der 3er-Gruppen

PTM.DB.SPIELER.* – Zugriff auf die Spieler-Datenbank

PTM.DB.SPIELER.ANZAHL()

Rückgabe: Integer

Anzahl der Spieler in der Spieler-Datenbank.

PTM.DB.SPIELER.SUCHE(suche; wildcard)

Parameter:

  • suche – Suchbegriff, Abgleich über Nachname und Vorname (Groß-/Kleinschreibung egal), wird getrimmt und auf 100 Zeichen begrenzt
  • wildcard – FALSCH = Anfangs-Treffer (term%); WAHR = Teilstring-Treffer (%term%)

Rückgabe: 2D-Bereich mit Vorname, Nachname, Verein (max. 200 Treffer)

=PTM.DB.SPIELER.SUCHE("Meier"; FALSCH)

PTM.PLANUNG.* – Eigenständiger Planungsrechner

Diese Funktionen berechnen live einen Zeitplan für ein Turnier, unabhängig vom Turniersystem und ohne dass ein Turnierdokument angelegt sein muss. Sie werden vom Planungsrechner verwendet, lassen sich aber auch frei in eigenen Tabellenblättern nutzen. Uhrzeit-Parameter (start, ende) sind echte Calc-Zeitwerte (Bruchteil eines 24-Stunden-Tages, z. B. 09:00 = 0,375) – am einfachsten über eine mit dem Zeitformat HH:MM formatierte Eingabezelle.

PTM.PLANUNG.DURCHGAENGE_PRO_RUNDE(anzTeams; anzBahnen)

Parameter:

  • anzTeams – Anzahl teilnehmender Teams (Integer)
  • anzBahnen – Anzahl verfügbarer Spielbahnen (Integer)

Rückgabe: Integer (Anzahl Durchgänge, die pro Runde nötig sind, damit alle Teams spielen können; 0 bei ungültigen Eingaben)

=PTM.PLANUNG.DURCHGAENGE_PRO_RUNDE(32; 8)

PTM.PLANUNG.ZEITLIMIT(start; ende; anzTeams; anzBahnen; anzRunden; durchgangPauseMin; rundenPauseMin)

Parameter:

  • start – Turnierbeginn (Zeitwert)
  • ende – gewünschtes Turnierende (Zeitwert)
  • anzTeams – Anzahl teilnehmender Teams (Integer)
  • anzBahnen – Anzahl verfügbarer Spielbahnen (Integer)
  • anzRunden – Anzahl geplanter Runden (Integer)
  • durchgangPauseMin – Pause zwischen zwei Durchgängen in Minuten (Integer)
  • rundenPauseMin – Pause zwischen zwei Runden in Minuten (Integer)

Rückgabe: Integer (errechnetes Zeitlimit pro Durchgang in Minuten, sodass das Turnier zwischen start und ende passt; 0 bei ungültigen Eingaben)

=PTM.PLANUNG.ZEITLIMIT(A1; A2; 32; 8; 5; 5; 10)

PTM.PLANUNG.TURNIER_ENDE(start; anzTeams; anzBahnen; anzRunden; durchgangPauseMin; rundenPauseMin; zeitlimitMin)

Parameter: wie oben, zusätzlich zeitlimitMin – Zeitlimit pro Durchgang in Minuten (Integer)

Rückgabe: String im Format HH:MM (voraussichtliches Turnierende; leerer String bei ungültigen Eingaben)

=PTM.PLANUNG.TURNIER_ENDE(A1; 32; 8; 5; 5; 10; 20)

PTM.PLANUNG.ZEITPLAN(start; anzTeams; anzBahnen; anzRunden; durchgangPauseMin; rundenPauseMin; zeitlimitMin)

Parameter: identisch zu PTM.PLANUNG.TURNIER_ENDE

Rückgabe: 2D-Bereich mit einer Zeile je Runde/Durchgang: Runde-Nr., Durchgang-Nr., Startzeit (HH:MM), Endzeit (HH:MM). Bei ungültigen Eingaben wird eine leere Tabelle geliefert (keine Fehlerzelle).

=PTM.PLANUNG.ZEITPLAN(A1; 32; 8; 5; 5; 10; 20)

Clone this wiki locally