Win/Loose Aufstellung

  • geschlossen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Win/Loose Aufstellung

    Hi,
    ich habe folgendes Problem:
    Würde gerne eine Win/Loose Aufstellung von Testparametern machen.
    Sähe ungefär so aus:
    | Param a | Param b | Param c
    Param a | ------- | 12 | 18
    Param b | 22 | -------- | 19
    Param c | 16 | 13 | -------

    Das gibt an wie oft ein Parameter gegen einen Anderen "gewonnen" hat, es geht hierbei um "Lernprobleme" und diese Win/loose Aufstellung soll gefüttert werden aus einen Datensatz der ungefähr so aussieht:

    | Param a | Param b | Param c
    datei1 | 45% | 83 % | 99%
    datei2 | 78% | 34 % | 23%
    etc.

    Jetzt ist mein Problem folgendes: Es gibt 34 Testdaten mit 15 Parametern, gibt es eine einfacher Lösung als für jede Zeile zu schreiben =Summe(Wenn(B3>D3;1;0);Wenn(B4>D4;1;0)....)

    Toll wäre es wenn es einen Vergleich gibt der trotz der Schreibweise (B3:B37>D3:D37) noch die richtige Summe produziert.

    Versteht ihr was ich suche?
    Denn wie sich jeder vorstellen kann ist das viel Tipp-Arbeit.
    Für jeden Tipp meine Formeln schlanker zu machen, bin ich echt dankbar.

    Gruß dadruck
  • Hmmm... also so richtig Sinn macht das doch nicht, oder?

    Deine obiges Beispiel der Win/Loose Tabelle kann so doch gar nicht entstehen.

    In den Sätzen (Datei1...) gibt es doch jew. immer einen Gewinner, richtig? Du zählst also im Prinzip die Anzahl der Gewinne pro „Param”.

    Deine Win/Loose Tabelle wird eher so aussehen:

    Quellcode

    1. | Param a | Param b | Param c
    2. Param a | ------- | 12 | 18
    3. Param b | 22 | ------- | 18
    4. Param c | 22 | 12 | -------


    Denn wenn „Param a” 22x gegen „Param b” gewonnen hat (also in 22 Sätzen der Gewinner war), dann hat „Param a” auch 22x gegen alle anderen „Params” gewonnen.

    Es sei denn die Struktur der enizelnen Sätze (Datei...) ist nicht immer gleich und es können immer unterschiedliche Params enthalten sein.

    Den Gewinner kannst Du bspw. so ermitteln:

    Quellcode

    1. param a param b param c
    2. datei1 0,88 0,45 0,13 =SVERWEIS(VERGLEICH(MAX(B2:D2);B2:D2;0);Sverweis_Tabelle;2;WAHR) ergibt 1
    3. datei2 0,12 0,35 0,77 =SVERWEIS(VERGLEICH(MAX(B3:D3);B3:D3;0);Sverweis_Tabelle;2;WAHR) ergibt 2
    4. datei3 0,01 1 0,99 =SVERWEIS(VERGLEICH(MAX(B4:D4);B4:D4;0);Sverweis_Tabelle;2;WAHR) ergibt 3
    5. Sverweis_Tabelle
    6. 1 param a
    7. 2 param b
    8. 3 param c
    9. 4 param d
    10. 5 param e
    11. 6 param f
    Alles anzeigen


    Mit „SummeWenn” auf Spalte „D” ermittelst Du denn die Anzahl der Gewinne pro Param.
  • Metaphore schrieb:



    In den Sätzen (Datei1...) gibt es doch jew. immer einen Gewinner, richtig? Du zählst also im Prinzip die Anzahl der Gewinne pro „Param”.


    Nicht ganz, sagen wir es gäbe 15 Parameter (gibt es wirklich) und jetzt gibt es 14 Gewinner pro Datenset.
    Es wird verglichen:
    auf Wievielen Daten war jetzt Parameter a besser als b? Dann auf wievielen Datensets war Parameter a besser besser als Parameter c? Etc.
    Nur weil Parameter a x-mal besser als b war, heisst das nicht das a auch mindestens x-mal besser als c ist.

    Deine kleine Formel werde ich mal versuchen zu verstehen und dann ausprobieren.

    Gruß dadruck

    Hier mal ein "kleiner" Teil meiner bisherigen Formel:

    Quellcode

    1. =SUMME(WENN(B3>C3;1;0);WENN(B4>C4;1;0);WENN(B5>C5;1;0);WENN(B6>C6;1;0);WENN(B7>C7;1;0);WENN(B8>C8;1;0);WENN(B9>C9;1;0);WENN(B10>C10;1;0);WENN(B11>C11;1;0);WENN(B12>C12;1;0);WENN(B13>C13;1;0);WENN(B14>C14;1;0);WENN(B15>C15;1;0);WENN(B16>C16;1;0);WENN(B17>C17;1;0);WENN(B18>C18;1;0);WENN(B19>C19;1;0);WENN(B20>C20;1;0);WENN(B21>C21;1;0);WENN(B22>C22;1;0);WENN(B23>C23;1;0);WENN(B24>C24;1;0);WENN(B25>C25;1;0);WENN(B26>C26;1;0);WENN(B27>C27;1;0);WENN(B28>C28;1;0);WENN(B29>C29;1;0);WENN(B30>C30;1;0);WENN(B31>C31;1;0);)


    Und für die nächste Spalte dann dementsprechend:

    Quellcode

    1. =SUMME(WENN(B3>D3;1;0);WENN(B4>D4;1;0);WENN(B5>D5;1;0);WENN(B6>D6;1;0);WENN(B7>D7;1;0);WENN(B8>D8;1;0);WENN(B9>D9;1;0);WENN(B10>D10;1;0);WENN(B11>D11;1;0);WENN(B12>D12;1;0);WENN(B13>D13;1;0);WENN(B14>D14;1;0);WENN(B15>D15;1;0);WENN(B16>D16;1;0);WENN(B17>D17;1;0);WENN(B18>D18;1;0);WENN(B19>D19;1;0);WENN(B20>D20;1;0);WENN(B21>D21;1;0);WENN(B22>D22;1;0);WENN(B23>D23;1;0);WENN(B24>D24;1;0);WENN(B25>D25;1;0);WENN(B26>D26;1;0);WENN(B27>D27;1;0);WENN(B28>D28;1;0);WENN(B29>D29;1;0);WENN(B30>D30;1;0);WENN(B31>D31;1;0);)

    Davon gibt es auch noch einen zweiten Teil, denn ich habe insgesamt 34 Datensets und schrappe somit knapp an der =Summe(item1;....;Itemx) beschränkung an Items vorbei.

    //edit: Wir haben hier eine Editierfunktion! Grml... Nutze Sie!!!
    mfg...
    Imperator
  • Achso... mehrere Gewinner kann es geben.

    Dann machst Du viell. ein zweite Tabelle, die für jeden Param pro Datensatz angibt, ob der Param ein Gewinner ist. Und zwar so, dass 1=wahr ist und 0=falsch

    Meine obige Formel zeigt Dir ja den jew. Gewinner-Parameter an - wenn Du nun eine zweite Tabelle machst, dann änderst Du die Formel so, dass sie für jeden Parameter vergleicht, ob sein Wert im jew. Datensatz dem Wert von MAX(Datensatz) entspricht. Dann soll der Wert also 1 sein.

    Wenn Du nun in Deiner Zusammenhang wissen willst, wie oft Param_a gegen Param_b gewonnen hast benutzt Du eine SummeWenn:
    (In Deiner Daten-Satz-Tabelle und in Deiner „Wahrheitstabelle” seien Param_a in Spalte 2 und Param_b in Spalte 3)

    SummWenn (Param_b_Spalte;0;Param_a_Spalte)

    Es werden also nur die „Gewinne” (=1) von Param_a gezählt, wenn gleichzeitig Param_b kein Gewinner (=0) ist.

    Hmm... Du könntest auch einfach Summe (Param_a_Spalte) - Summe (Param_b_Spalte) rechnen... :D

    Ich hoffe das war einigermaßen nachvollziehbar?

    edit:... ach.. das geht auch nicht.. ich merk gerade, dass ich es schon wieder falsch verstanden hatte...
  • @metaphore : Nun bin ich etwas verwirrt.
    Hmm, ich gucke mal ob es in Excel möglich ist diese Bedinungen einfacher auszudrücken. Excel kann doch sonst jeden mist, wird sich schon was finden lassen.

    Es würde mir ja schon reichen wenn es in etwa sowas gäbe:

    Quellcode

    1. =Summe(Wenn(B3:b37>d3:d37;1;0));

    Also quasi etwas was für die Summe zählt wo denn Bxy > war als Cxy.


    //edit: GLEICH NOCHMAL: Wir haben hier eine Editierfunktion! Grml... Nutze Sie!!!
    mfg...
    Imperator
  • So - vergiss mein voriges Post. Ich hatte gedacht, dass es pro Datensatz mehrere Gewinner geben könnte, diese dann aber alle den gleichen Wert haben (zB 99%,8%,14%,99%,7%,99%)

    Na gut... Dein Problem habe ich aufjedenfall gelöst. Als ich Dir gerade die entspr. Excel-Datei schicken wollte bzw. irgendwo verlinken wollte bin ich leider zu einer Besprechung gerufen worden.. ich hol das morgen nach, falls dann noch Bedarf besteht.

    Aber ich sag's Dir gleich... ohne ein bisschen manuelles Zugetue wirst Du Dein Problem mit reiner Tabellenkalkulation nicht so einfach lösen können. Du könntest auch ein VBA-Makro schreiben... wenn ich mich nicht irre, kann man sogar Funktionen in VBA basteln und diese dann in der Tabellenkalkulation verwenden.... aber wollen wir mal nicht übertreiben :D

    edit: hier die Excel-Datei: h**p://demo.hostingclub.de/Param-Gedoens.zip
  • Das sieht ja schon richtig gut aus, hmm auf die Kluge Idee das auf mehrere Blätter zu verteilen bin ich noch nicht gekommen *selbstaufdenhinterkopfschlag*.

    Werde mal gucken ob ich das so hinbekomme.
    Melde mich dann nochmal.

    Hmm, okay, verwirrt ich bin.
    Ich weiss nicht genau wie deine Formeln funktionieren.
    Gegen Manuele Arbeit habe ich nix einzuwenden, mache ich ja eh schon *g*
    Alles was mir das Leben erleichtert wäre halt super :)
    Hmm, VBA, da hatte ich noch nie was mit probiert, wenn mir heute Abend langweilig ist, probiere ich das auch mal aus.

    Ach wenn es doch nicht so viel Datensätze wären *g*

    //edit: und zum 3. mal!!! Sag mal gehts noch?
    Keine Doppelposts bitte! Bitte RULES lesen!
    mfg...
    Imperator
  • Also - hier eine kurze Erläuterung:

    Datensätze
    Enthält Deine Datensätze - Du trägst sie dort einfach untereinander ein

    Vergleiche
    Hier wird's tricky - Oben links liest Du „Vergleich” und „mit”... wenn Du nun in den entsprechenden Zeilen rechts weiterliest, dann liest Du in Spalte D bspw: „Vergleich a mit c”. Wenn der Vergleich ergibt, dass a > c ist, dann enthält die Zelle den Wert „1” ansonsten „0”. Dieser Vergleich erfolgt dann für jeden Datensatz. Wenn Du mehrere Datensätze hast, musst Du natürlich analog auch in dieser Tabelle entsprechende Zeilen einrichten und die Formeln runterkopieren. Außerdem musst Du die Tabelle natürlich nach rechts erweitern und alle Kombinationen abbilden... aber ich denke das ist klar.

    Die Formel in den Zellen liest in den ersten beiden Zellen um welche Parameter es geht und liest in der ersten Spalte um welchen Datensatz es geht. Mit diesen Informationen holt sich die Formel (per SVERWEIS) aus der Tabelle „SVERWEISE¸ den Namen der Spalten bzw. die Nummer der Zeilen! Die Funktion „INDIREKT” macht aus einem Bezug, der als Text vorliegt einen echten Bezug. Wir bilden uns hier also anhand der Spalten und Zeilen-Bezeichnunen einen Bezug. Wenn Du auf den Funktionsbutton klickst geht das Funktionsfenster auf und Du bekommst angezeigt was für Werte die einzelnen Funktionen ergeben.. Klick im dann im Eingabefenster auf die einzelnen Bestandteile der Gesamtfunktion in der Zelle um „Unterergebnisse” zu sehen (bspw. von INDIREKT).

    SVERWEISE
    Du musst hier die Aufschlüsselung erweitern. Hier liegen zwei Listen vor - eine die angibt in welcher Spalte sich welcher Parameter findet (bspw. „c” in Zeile „D¸) und welcher Satz sich in welcher Zeile finde (bspw. „Satz 4” in Zeile „5”). Du kannst die Listen einfach nach unten fortsetzen. Die SVERWEISE unter „Vergleiche” referenzieren diese Listen über einen Namen, der hier über die gesamten Spalten geht.

    Zusammenfassung
    Hier merke ich gerade, dass ich shice gebaut habe... Hier musst Du natürlich die einzelnen Summen bilden.. aber nicht so wie ich das gemacht habe! Natürlich wäre es elegant, wenn man hier eine Formel hätte, die man einfach kopieren kann und so entsprechend die Tabelle dann einfach erweitern kann.

    Dazu habe ich auf der Lasche „Vergleiche” eine neue Zeile eingefügt, die aus beiden Parameter einen „Key” bildet (bspw. „ab”).
    Bei der Zusammenfassung fügst Du nun in Zelle „B2” folgende Formel ein:

    Quellcode

    1. =SUMME(INDIREKT("Vergleiche!Z4S"&VERGLEICH(B$1&$A2;vergleichskey;0);FALSCH):INDIREKT("Vergleiche!Z1000S"&VERGLEICH(B$1&$A2;vergleichskey;0);FALSCH))


    Diese Formel bildet wiederum den o.g. Key und sucht ihn in der Lasche „Vergleiche”. Dann wird ein Z1S1-Bezug gebildet und damit dann die Summen-Funktion genutzt... Jetzt ist die Anzahl der max. Datensätze aber auf 1000 fixiert (s. Formel).. das könnte man ja auch wieder durch einen Namen ersetzen oder erhöhen...

    Ich glaub jetzt passt's aber :)
  • @ Methaphore: Danke ich glaube ich habe es mit den Namen hinbekommen.
    Deine Formeln verstehe ich leider immer noch nicht, aber ich muss mir die mal in allerruhe mit dem Formelbetrachter mal auswerten. Hoffe das hilft.

    @Imperator: Jap habe leider erst jetzt deine roten Hinweise gesehen. Soll nicht wieder vorkommen.