Archiv verlassen und diese Seite im Standarddesign anzeigen : Seminar: Programmieren mit Excel
David Cooper
02.01.2005, 23:22
Programmieren mit Microsoft Excel
Einführung in die logischen Formeln
Da ich schon mehrfach angesprochen wurde, wie man mit Excel, zumindest ansatzweise, mit Formeln zur Überprüfung eines Roulette Systems arbeiten kann, wollte ich an dieser Stelle ein mal ein bisschen erklären!
Ich unterstelle das u.a. folgende Grundformeln, sowie die Verwendung des $-Zeichens zur Fixierung von Spalten und Zeilen bekannt sind, und ich an dieser Stelle nicht näher darauf eingehen muss:
SUMME
MITTELWERT
MIN
MAX
ZÄHLENWENN
Die meisten Möglichkeiten zur Überprüfung von Systemen erhält mit sogenannten: Logischen Funktionen, was im normalerweise so aussieht:
=wenn(PRÜFUNG;DANN-WERT;SONST-WERT)
Das Gleichheitszeichen muss dabei immer vor Beginn jeder Formel stehen, die Klammern sind an diesen Stellen auch unbedingt zu setzen!. Bei PRÜFUNG wird eingetragen, was überprüft werden soll, bei DANN-WERT wird dem Programm mitgeteilt, was er tun soll, wenn die Prüfung richtig (wahr) ist, bei SONST-WERT wird dem Programm mitgeteilt, was zu rechnen ist; wenn die Prüfung negativ ist.
z.B. wenn(a1=3;7;"HALLO")
Bei dieser Formel wird überprüft , ob im Feld A1 eine 3 steht; ist dies der Fall zeigt das Programm als Zahl 7 an; ist dies nicht der Fall, zeigt das Programm HALLO an (wobei Texte immer in Anführungszeichen gesetzt werden müssen, da Excel nicht mit Texten rechnen kann => sonst: Fehlermeldung) - soll ein Mal gar nichts angezeigt werden folgen einfach zwei Anführungszeichen nacheinander ("").
Da aber die PRÜFUNG immer im Normallfall immer für eine Bedingung möglich ist, gibt es folgende Zusatzfunktionen:
UND
ODER
Eine PRÜFUNG ist bei UND wahr, wenn alle Teilbedidungen war sind, eine Prüfung ist bei ODER wahr, wenn eine (!) der Teilbedigungen war ist, in der Abstrakten Form, sieht das folgendermaßen aus:
=wenn(UND(PRÜFUNG1;PRÜFUNG2);DANN-WERT;SONST-WERT)
oder
=wenn(ODER(PRÜFUNG1;PRÜFUNG2);DANN-WERT;SONST-WERT)
So lassen sich beliebig Prüfungen durchführen, die jeweils durch ein Simikolon ; getrennt, und in Klammern gesetzt sind.
Selbsverständlich lässt sich (was zumeist so ist) der DANN-WERT oder der SONST-WERT erneut durch eine logische Funktion erklären bzw. beschreiben, was dann wie folgt aussieht:
=wenn(PRÜFUNG;wenn(PRÜFUNG;DANN-WERT;SONST-WERT);wenn(PRÜFUNG;DANN-WERT;SONST-WERT))
Das sieht zwar unter Umständen im Augenblick vielleicht kompliziert aus, aber auf Dauer oder mit richtigen Zahlen ist es ziemlich schnell zu erlernen!
David Cooper
12.01.2005, 18:42
Folgende Frage erhielt ich per PN von einem User - sein Einverständnis
vorausgesetzt werde ich Sie an dieser Stelle beantworten:
daher meine fragen an dich: wie hast du bei dem system von Mylord die permanenz behandelt? wie sage ich excel, dass es weiß, was einfache chancen sind? und wie sage ich dem Programm, was es zu tun hat?
Das ist im Grunde gar nicht so schwierig, entweder man schlüsselt die einfachen Chancen einfach nach SCHWARZ und ROT auf, oder man entwickelt eine Formel, dass Excel einfach nur überprüft, ob diese Zahl rot (also eigentlich nur mit der entsprechenden Zahl übereinstimm) und dann WIN oder LOOSE schreibt, wie in dem obigen Fall.
<pre>
Rot Schwarz
32 x
28 x
2 x
24 x
26 x
16 x
1 x
28 x
29 x
34 x
</pre>
Die einfache Variante um etwas zu programmieren, die Formel für Rot lautet:
=WENN(ODER(A2=1;A2=3;A2=5;A2=7;A2=9;A2=12;A2=14;A2 =16;A2=18;A2=21;A2=23;A2=25;A2
=27;
A2=30;A2=32;A2=34;A2=36;A2=19);"x";"")
Bei der Formel für Schwarz werden einfach nur die Zahlen geändert, so lassen sich im Grunde genommen die Einfachen Chancen SCHWARZ/ROT und GERADE/UNGERADE, sowie KOLONNEN ziemlich gut überprüfen, wobei die Zero (0) dabei erst ein Mal völlig unberührt von bleibt, in diesem Fall wird bei NULL gar nichts angezeigt!
Natürlich kann das ganze auch so aussehen:
<pre>
32 ROT
28 SCHWARZ
2 SCHWARZ
24 SCHWARZ
26 SCHWARZ
16 ROT
1 ROT
28 SCHWARZ
29 SCHWARZ
34 ROT
</pre>
Die Formel dafür sieht folgendermaßen aus:
=WENN(A2=0;0;WENN(ODER(A2=1;A2=3;A2=5;A2=7;A2=9;A2 =12;A2=14;A2=16;A2=18;A2=21;A2
=23;A2=25;A2=27;
A2=30;A2=32;A2=34;A2=36;A2=19);"ROT";"SCHWARZ"))
Hier wurde auch die Null berücksicht, die Bedingungen für SCHWARZ wurden explizit gar nicht mehr erwähnt, da alle anderen Möglichkeiten (Zero und Rot) bereits überprüft worden waren, musste alles andere SCHWARZ sein!
Die Formeln für Bestimme Bereiche, wie TRANSVERSALE, DUTZENDE, die Einfachen Chanen PASSE/Manque, sind im Grunde genommen noch viel einfacher, da man dafür einfach nur ein bestimmtes Intervall vorgibt.
WENN(UND(A2>=1;a2<=12);"X";"")
Hierbei wird das Einfache Dutzend beschrieben, da 1 der Anfang des Intervalls und 12 der Schluss des Intervalls sein soll, das lässt sich also ebenso leicht auf die anderen Roulette-Intervalle übertragen!
Bei Mylords Programm hab ich diese Bedingungen also jeweils überprüfen lassen, dann aber "WIN" und "LOOSE" bei Gewinn und Verlust anzeigen lassen, um später die Einsätze (erneut unter gewissen von Mylord in seinem System vorgegebenen Bedingungen zu erhöhen, oder zu senken)
Das sah für die Einfache Chance ROT folgendermaßen aus:
=WENN(B2="LOOSE";1;WENN(UND(B2="WIN";B1="LOOSE");C1+1;WENN(B2="win";C2+1)))
Die Formel befindet sich in Zeile 3! Sie enstand aus folgenden Gesichtspunkten:
a) Wenn das vorangegangen Ergebnis "LOOSE" ist, dann sofortige Reduzierung des
Einsatzes auf 1 Einheit!
b) Wenn das vorangegangen Ergebnis "WIN" ist, und das vorletze Ergebnis "LOOSE"
ist, soll der Einsatz wieder den gleichen Einsatz wie vorher + 1 erhöht werden!
c) Wenn keines der Beiden Bedingungen der Fall sitz, also das vorangegangene
einfach nur "WIN" ist, soll der Einsatz um eine Einheit erhöht werden!
An diesem Beispiel wird sehr deutlich, dass MS Excel eine Funktion nacheinander überprüft und aufhört, wenn sie das erste Mal WAHR ist, denn bei
diesem Beispiel soll ja sowohl bei Bedingung b), als auch bei Bedigung c) das vorangegangene Resultat "WIN" sein, aber wenn b) WAHR ist, würde c) gar nicht mehr überprüft werden!
Zum Schluss ist nur noch die Formel für den Gewinn und Verlust erwähnenswert; wobei ich vorher ein Wenig auf die Art von Summierungen zu sprechen kommen muss. Die Normale Summierung sieht folgendermaßen aus:
=summe(a2:a44)
Es lassen sich aber auch nur einzelnde Zellen summieren:
=summe(a2;b77;c33;g7)
Oder, und das ist jetzt nur noch die einzige Schwierigkeit für Mylords Systemüberprüfung, es lassen bestimmte Dinge unter gewissen Umständen summieren, was abstrakt, wie folgt aussieht:
=summe(wenn(PRÜFUNG;DANN-WERT;SONST-WERT);wenn(PRÜFUNG;DANN-WERT;SONST-WERT))
Diese Summierung lässt sich im Grunde ebenso beliebig lang fortführen, wobei hier natürlich auch wieder die ODER und UND Funktionen unter gewissen Umständen von Nöten werden könnten!
Das sieht dann beim Super-Bingo-Spiel von Mylord folgendermaßen aus:
=SUMME(WENN(B2="win";C2;C2*-1);WENN(D2="win";E2;E2*-1);
WENN(F2="WIN";G2;G2*-1);WENN(H2="WIN";I2*2;I2*-1);WENN(J2="win";K2*2;K2*-1);
WENN(L2="win";M2*8;M2*-1)))
Es wird z.B. bei der Formel WENN(L2="win";M2*8;M2*-1) auf einem Caré unter Gewissen bei "WIN" ein Gewinn von dem 8-fachen des Einsatzes ausgezahlt, und sonst der Einsatz mit -1 multipliziert, also abgezogen!
David Cooper
10.02.2005, 13:38
Figurenanalyse
viele systeme auf den ecs basieren auf figurenkonstellationen. wenn ich in meinem programm die figuren definiere, die ich teste möchte (für eine bestimmte coupstrecke beispielsweise), wie definiere ich die dann? muß ich excel textvorgaben machen? wie sehen die aus?
Also ich (natürlich gibt es wahrscheinlich noch andere Möglichkeiten) würde in die Einfachen Chancen in zwei Spalten (wie oben geschildert mit "x") aufschlüsseln und dann eine weitere Spalte als Figurenbeschreibung einrichten, in der man als Formel die Figuren festlegt und Excel und gewissen Umständen z.B. 1. Figur anzeigen lässt, jedoch muss es sich hierbei wohl dann um eine geschachtele Wenn-Funkion handeln, ohne geht es meines wissens nicht.
Hier ein Mal ein Versuch: Spalte (A=gefallene Zahl; B=Schwarz; C=ROT)
in Zelle D4 folgende Formel:
=wenn(und(b1="x";b2="X";b3="x";b4="x");"1.Figur";wenn(und(C1="x";C2="x";C3="X";B4="x";"2. Figur";.......))
So wird dann im einfachsten Sinne die Reihe weiter fortgeführt.
Bezogen auf die Alyett'schen Figuren lässt sich natürlich auch eine Formel festlegen, die z.B. erst ein Mal überprüft, ob sich das Kreuz rechts oder links befindet, um dann weiter zu schachteln:
=wenn(B1="X";...;...)
Hier würden also die beiden ... durch weitere Wennfunktionen ersetzt werden, wahrscheinlich die elegantere Methode, aber auch die schwierigere!
David Cooper
19.02.2005, 21:50
Eingrenzung eines Bereiches (bzw. Definitionsbereich)
Es gibt in MS Excel 4 Möglichkeiten zur Festlegung eines Bereiches (bzw. eines Intervalls):
<pre>
>x Die Zahl soll größer als X sein.
<x Die Zahl soll kleiner als X sein.
>=x Die Zahl soll größer oder gleich X sein.
<=x Die Zahl soll kleiner oder gleich X sein.
</pre>
Praktisch gesehen sieht das aber so aus, dass z.B. beim ersten Dutzend die Formel
in zwei verschiedenen Arten geschrieben werden kann:
=wenn(und(a2>=1;a2<=12);"x";"")
oder
=wenn(und(a2>0;a2<13);"x";"")
Das funktioniert aber nur, weil das Roulette keine Zahlen mit Kommastellen produziert!
David Cooper
05.03.2005, 13:20
NICHT - WAHR - FALSCH
Heute will ich mich ein Mal einem etwas einfacheren Excel-Bereich widmen, der aber für die Ergänzung von den obigen logischen Formeln zeitweilig unabdingbar ist.
Die logischen Formeln bei einer PRÜFUNG nur das Ergebnis WAHR oder FALSCH, jedoch resultier dieses WAHR oder FALSCH nicht nur aus den Überprüfungen, sondern lässt sich auch vom Benutzer selbst festlegen, er bestimmt also, das unter gewissen Umständen eine Funktion einfach FALSCH oder WAHR sein soll!
=wenn(PRÜFUNG;DANN-WERT;SONST-WERT)
Hier macht eine Ersetzung des DANN-WERTs oder des SONST-WERTS in WAHR oder FALSCH noch keinen rechten sinn, aber solch einer folgenden Verkettung (also: in der Fachssprache "GESCHACHTELTE WENNFUNKTIONEN") kann es unter Umständen von Nöten werden:
=wenn(PRÜFUNG;DANN-WERT;wenn(PRÜFUNG;DANN-WERT;SONST-WERT))
Erwähnenswert bleibt nun noch die Tatsache, dass sich gewisse PRÜFUNGEN auch simpel mit NICHT umkehren lassen, was konkret so aussehen könnte:
=wenn(NICHT(A1=2);"hallo";"wow")
Durch diese Formel wird bestimmt, dass wenn A1 nicht die Zahl 2 enthält, "hallo" geschrieben werden soll, sonst "wow"; aber in den meisten fällen ist dies Umkehrung nicht nötig, dann man in diesem Fall z.B. die Formel zumeist folgendermaßen schreiben würde:
=wenn(A1=2;"wow";"hallo")
Man hat also die Logische Formel von Ihrem Sinn her umgekehrt geschrieben und scheinbar der Einfachheit halber auf die Einfügung eines NICHT verzichtet!
Fasst man nun den heutigen, sowie den gestrigen Beitrag zusammen, lassen sich folgende Teilformeln,
<pre>
ODER liefert den Wahrheitswert WAHR, wenn eins der Argumente WAHR ist!
UND liefert den Wahrheitswert WAHR, wenn alle Argumente WAHR sind!
NICHT kehrt das Argument ins Gegenteil um
WAHR liefert den Wahrheitswert WAHR
FALSCH liefert den Wahrheitswert FALSCH
</pre>
sowie die Hauptformel WENN (die eine Wahrheitsprüfung durchführt), feststellen (zufinden im Funktionsassistenten unter LOGIK).
David Cooper
16.03.2005, 18:15
Zellen und Bereiche
Heute eine kleine Exkursion über Zellen und Bereiche!
=SUMME(H1:H7)
Bei dieser Formel wird der Bereich von der Zelle H1 bis zur Zelle H7 summiert, will man nur die Zellen H1 und H7 summieren, wird es dies durch Semikolon getrennt, was konkret dann so aussieht:
=SUMME(H1;H7)
Ich betone also nochmal: einige Formeln können nur Bereiche summieren, andere Bereiche und Zellen. Formeln, die nur Zellen summieren können, sind mir nicht bekannt!
Am Einfachsten lassen sich Bereiche mit der Maus festlegen, d.h., dass man, nach dem Öffnen der Klammer, einen Bereich markiert (zu erkennen daran, dass der beschriebende Bereich gestrichelt umrandet ist, durch gleichzeitiges festhalten der STRG-Taste lassen sich auch verschiedene Bereiche kombinieren!
(Natürlich lässt sich der Bereich aber ebenso gleich mit der Tastatur festlegen,
was jedoch z.B. bei schwierigen Summierungen etwas Übung erfordert)
Dieser Bereich als Kombination aus Bereichen un Zellen beschreibt zum Beispiel ein Kreuz (probieren Sie es auch), was mit der Maus leicht zu markieren, aber nur mit der Tastatur schwer zu beschreiben
=summe(I4:I18;H7:H9;A7:J9)
David Cooper
31.03.2005, 10:36
IST-FORMELN
In meinem vergangenen Posting habe ich die Erste, der zur IST-Formelgruppe gehörende Formel vorgestellt, sie liefern alle unter gewissen Bedinungen den Wahrheitswert WAHR:
ISTFEHLER
ISTKTEXT
ISTLEER
ISTLOG
ISTTEXT
ISTZAHL
Auch diese Formeln müssen alle mit Klammern und Gleichheitszeichen dargestellt werden - abstrakt sieht das so aus:
=ISTFORMEL(BEZUG)
Soweit mir bekannt ist, kann der Bezug aber immer nur eine Zelle nie ein Bereich sein.
David Cooper
14.04.2005, 19:14
ISTLEER
Diese Formel findet vor allem im Bereich der Logischen Formeln verwendung, sie liefert den Wahrheistwert WAHR, wenn eine Zelle (kein Bereich) leer ist, dass könnte in der Roulette Praxis vor allem Verwendung finden, wenn keine Überprüfung mehr stattfinden soll, wenn in Spalte A keine gefallene Zahl mehr steht!
Bezogen auf Mylord Super Bingo Spiel hatte ich ja bereits am Anfang mitgeteilt, dass die Formel für die Einfache Chance Rot folgendermaßen aussah:
=WENN(B2="LOOSE";1;WENN(UND(B2="WIN";B1="LOOSE");C1+1;WENN(B2="win";C2+1)))
Nun wollte ich aber das Programm so weit wie möglich automatisieren, also fügt ich vor die ganze Formel eine ISTLEER-Formel ein, was in der Praxis so aussah:
=wenn(istleer($a2);"";WENN(B2="LOOSE";1;WENN(UND(B2="WIN";B1="LOOSE");C1+1;WENN(B2="win";C2+1))))
Microsoft Excel sollte also mit einer Überprüfung aufhören (bzw. nichts mehr schreiben), wenn die Zelle A2 leer war (also keine gefallene Zahl mehr zu finden war).
Diese Formel wird wahrscheinlich in der Praxis häufiger auftreten, da sich so z.B. 400 Zeilen mit Formeln herunterkopieren lassen, sodass man nur noch in Spalte A die Permanenz eintragen oder 'reinkopieren muss. Das Programm stoppt dann in der Zeile, in der keine gefallene Zahl mehr zu finden ist, automatisch den Rechenvorgang!
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.