207 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.6k Punkte)
Bearbeitet von addeguddi

Hallo und einen schönen Tag an die Forum - Unterstützer,

wer kann mir einen Vorschlag unterbreiten für die folgenden Formeln. eine VBA Lösung wäre das beste.

Suche eine bessere Lösung für folgende Formel
Vielleicht hat jemand eine Idee wie ich das besser machen kann!
Damit ich nicht diese Formel alle einzeln eingeben muss.
Je nach dem welcher Spieler dran ist verändert sich die Spalten- Nummer.
Ab Spieler 4 bis 90 Müssen die Werte für Spieler 4 aus AL1, AL3, AL5, für Spieler 5, aus AO1 , AO3, AO5 Usw.
Mein Beispiel ist für 3 Spieler, muss aber leider bis 90 Spieler diese Formel erweitern; eingeben.
Die Zahlen 1,2,3, Usw. sagen aus, das die Werte für Spieler 1 aus der Zelle K5 angezeigt wird und nicht als leer erscheint wenn Spieler 2 dran ist.
Das gleiche gilt dann für den nachfolgenden Spieler.
Spieler 1 WENN($G$1=9;AC1;WENN($G$1=8;$AC$1;WENN($G$1=7;AC1;WENN($G$1=6;T1;WENN($G$1=5;$T$1;WENN($G$1=4;T1;WENN(ODER($G$1=1;$G$1=2);$K$1;WENN($G$1=3;$K$1))))))))
Spieler 2 WENN($G$1=9;AF1;WENN($G$1=8;$AF$1;WENN($G$1=7;AF1;WENN($G$1=6;W1;WENN($G$1=5;$W$1;WENN($G$1=4;W1;WENN(ODER($G$1=1;$G$1=2);$N$1;WENN($G$1=3;$N$1))))))))
Spieler 3 WENN($G$1=9;AI1;WENN($G$1=8;$AI$1;WENN($G$1=7;AI1;WENN($G$1=6;Z1;WENN($G$1=5;$Z$1;WENN($G$1=4;Z1;WENN(ODER($G$1=1;$G$1=2);$Q$1;WENN($G$1=3;$Q$1))))))))
Spieler 1 WENN($G$1=9;C3;WENN($G$1=8;$AC$3;WENN($G$1=7;AC3;WENN($G$1=6;K3;WENN($G$1=5;$T$3;WENN($G$1=4;T3;WENN($G$1=3;K3;WENN($G$1=2;$K$3;WENN($G$1=1;K3;)))))))))
Spieler 2 WENN($G$1=9;AF3;WENN($G$1=8;$AF$3;WENN($G$1=7;AF3;WENN($G$1=6;W3;WENN($G$1=5;$W$3;WENN($G$1=4;W3;WENN(ODER($G$1=1;$G$1=2);$N$3;WENN($G$1=3;$N$3))))))))
Spieler 3 WENN($G$1=9;AI3;WENN($G$1=8;$AI$3;WENN($G$1=7;AI3;WENN($G$1=6;Z3;WENN($G$1=5;$Z$3;WENN($G$1=4;Z3;WENN(ODER($G$1=1;$G$1=2);$Q$3;WENN($G$1=3;$Q$3))))))))
Spieler 1 WENN($G$1=9;AC5;WENN($G$1=8;$AC$5;WENN($G$1=7;AC5;WENN($G$1=6;K5;WENN($G$1=5;$T$5;WENN($G$1=4;T5;WENN(ODER($G$1=1;$G$1=2);$K$5;WENN($G$1=3;$K$5))))))))
Spieler 2 WENN($G$1=9;AF5;WENN($G$1=8;$AF$5;WENN($G$1=7;AF5;WENN($G$1=6;W5;WENN($G$1=5;$W$5;WENN($G$1=4;W5;WENN(ODER($G$1=1;$G$1=2);$N$5;WENN($G$1=3;$N$5))))))))
Spieler 3 WENN($G$1=9;AI5;WENN($G$1=8;$AI$5;WENN($G$1=7;AI5;WENN($G$1=6;Z5;WENN($G$1=5;$Z$5;WENN($G$1=4;Z5;WENN(ODER($G$1=1;$G$1=2);$Q$5;WENN($G$1=3;$Q$5))))))))

Für eine Lösung wäre ich sehr dankbar.

Gruß Adde
Ps. Noch ein Hinweis.
Die Spielernummer wir aus G1 eingelesen und das Ergebnis für Namen aus K3 in KB7, Punktzahl aus K5 in KC7
  und Vorschlag Checkout aus K 1 in KE7 für die anderen Teilnehmer eine Zeile darunter.

5 Antworten

0 Punkte
Beantwortet von

Guten Morgen,

ich bräuchte noch ein paar Info dazu

sind diese (bislang) 9 Formeln in  9 verschiedenen Zellen oder sollen die in 1 bzw. 3 Zellen zusammengefasst werden

(und wie sieht das dann bei 90 Spielern aus 1 oder 3 oder 270 (3*90) Zellen) ?

Würde jedenfalls nur schon mal anmerken, dass man den Teil

WENN($G$1=9;AF5;WENN($G$1=8;$AF$5;WENN($G$1=7;AF5

zu WENN((ODER($G$1=9;$G$1=8;$G$1=7);AF5 vereinfachen kann

bzw. WENN((UND($G$1<=9;$G$1>=7);AF5

0 Punkte
Beantwortet von
Bearbeitet

Ein Ansatz!

Sub SpielerFormeln()
    Dim spieler As Integer
    Dim formeln(1 To 90, 1 To 3) As String
    Dim spalte As Integer
    Dim buchstabe As String
    For spieler = 1 To 90
        ' Ermittle die Spaltennummer basierend auf dem Spieler
        spalte = 27 + (spieler - 1) * 2
        ' Konvertiere die Spaltennummer in den entsprechenden Buchstaben
        buchstabe = Split(Cells(1, spalte).Address, "$")(1)
        ' Erstelle die Formeln für Spieler 1 bis 90
        formeln(spieler, 1) = "=WENN($G$1=9," & buchstabe & "1)"
        formeln(spieler, 2) = "=WENN($G$1=8,$" & buchstabe & "$2)"
        formeln(spieler, 3) = "=WENN($G$1=7,$" & buchstabe & "1)"
    Next spieler
    ' Schreibe das gesamte Array in den gewünschten Bereich
    Range("A1:C90").Formula = formeln
End Sub
0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)

Hallo Anonym

vielen Dank für deine Antwort.

Rückfrage zu dem unten aufgeführten Vorschlag:

In G1 werden die Zahlen 1 bis 90 eingepflegt. Ist es  egal ob jetzt die 9 steht, ändert sich diese Zahl automatisch?

formeln(spieler, 1) = "=WENN($G$1=9;" & buchstabe & "1;"
Gruß Adde
0 Punkte
Beantwortet von
Bearbeitet
d.h. du brauchst eigentlich eine Formel die von

Wenn(G1=90 bis  ...G1 = 1 )geht ?

Könntest Du mal Anfang und Ende davon schreiben damit wir das richtig verstehen (btw. Antworten sind von verschiedenen Anonyms^^)
0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)
Hallo Anonym

Danke für die Antwort und den Hinweis.

Hier noch einmal wo die Formel stehen:

Hätte ich das so formulieren sollen ;oder ?

Die Rangfolge ergibt sich über G1 der Spielernummer.

Für Runde 1 ist das Spiel 1 bis 3, 2te Runde Spiel 4 bis 6, 3te Runde Spiel 7 bis 9 usw.

Spieler 1: der Name wird  in KB 7 aus Zelle K 3 , Punkte wird in KC 7 aus Zelle K 5, Vorschlag zum aus - Checken in KE 7 Wert aus Zelle K1 übernommen.

Spieler 2:KB 8 KC 8, Werte: in  N3, N5; N1

Spieler 3: KB) 9 KC 9,  Werte: in Q3, Q5, Q1, für Spieler 4 KB10 KC 10 , Werte: in T3, T5, T1 Usw.

Namen werden über G1 ermittelt als Spielernummer, für die Spieler 1 steht die 1usw .

WENN($G$1=1;K3; dann erscheint der Name Steht in KB 7

Damit die Werte sichtbar bleiben, werden die Vergleiche für die 1 Runde vorgenommen: Bei 3 Spieler wäre das für Spieler 1: Checkout; K1,N1 und Q1,

WENN(ODER($G$1=1;$G$1=2);$K$1;WENN($G$1=3;$K$1

für die Punkte: K5, N5 und Q5,

WENN(ODER($G$1=1;$G$1=2);$K$5;WENN($G$1=3;$K$5

Wenn 1 Spieler in der 1ten Runde ausgecheckt hat, wird die 2te Runde mit Spiel 4 für Spieler 1 angezeigt und die Werte dann für Spieler 1 aus T1, W1 und Z1 verglichen für Spieler 2, also alle 3 Spalten weiter die Werte holen, hoffe dass das richtig ist.
Diese Formel erweiterte ich wie im erstem Abschnitt beschrieben.
Könnt ihr damit mehr anfangen oder ?

Gruß Adde
...