Ein Wurf – Tausend neue Kombinationen
Man kann natürlich alle Würfelkombinationen auswürfeln und aufschreiben – und je mehr Würfel, desto… naja, Sie wissen schon 😉
Wir haben ein Makro entwickelt, das automatisch alle möglichen Parameter miteinander kombiniert und auswertet.
Egal, wie viele Würfel-Parameter Sie verwenden, das Makro erzeugt alle Kombinationen im Handumdrehen. Wir verwenden es hauptsächlich bei der Definition von Test-Cases, die aber zu speziell sind, um sie als Beispiel verwenden zu können.
Ein (hoffentlich) etwas anschaulicheres Beispiel:
Stellen Sie sich vor, Sie haben ein Hotel und möchten Ihren Hotelgästen alle Zimmer mit den entsprechenden Preisen für alle möglichen Szenarien und Buchungskombinationen vorstellen.
Dazu wollen Sie eine Excel-Tabelle erstellen, die alle Kombinationen aus Zimmerart, Saison, Verpflegung, etc. enthält. Da kommen gerne mal mehrere hundert unterschiedliche Zimmerpreise zusammen, und Sie dürfen keine Kombination vergessen.
Bei unserem Hotel-Preis-Beispiel kann das Kombinator-Makro automatisch alle Varianten miteinander kombinieren und sofort die gewünschten Kombinationen generieren.
Das erspart Ihnen enorm viel Aufwand, und Sie können sicher sein, dass Ihre Preisliste auch vollständig ist.
Probieren Sie unseren Kombinator-Makro einfach aus. Er darf uneingeschränkt kopiert, verändert und erweitert werden.
Wir freuen uns über das Feedback Ihrer Anwendungsmöglichkeiten.
Ihr Schäfer Informatik Team.
[ps2id id=’KombinatorAnleitung‘ target=“/]Anleitung:
- Klicken Sie auf das Menü „Datei“
- Klicken Sie auf „Optionen“
- Klicken Sie auf „Menüband anpassen“
- Aktivieren Sie unter „Menüband anpassen“ und unter „Hauptregisterkarten“ das Kontrollkästchen „Entwicklertools“
In der Registerkarte „Entwicklertools“ auf Visual Basic drücken oder mit ALT+F11 öffnen.
Im Fenster „Microsoft Visual Basic for Applications“ unter Datei auf Datei importieren… drücken (Strg+M). Dann die Kombinator.bas Datei suchen und öffnen.
Um das Makros zu nutzen, muss eine Tabelle mit dem Namen „ReferenceData“ angelegt werden. Diese Tabelle steuert das Kombinator-Makro und gibt alle Spalten und Werte vor:
- Dazu erstellen Sie einfach eine neue Tabelle, indem Sie neben ihren anderen Tabellen auf das „+“ drücken
- Mit einem Doppelklick auf den Tabellennamen (z.B. „Tabelle 1“) können Sie die Tabelle in „ReferenceData“ umzubenennen.
In das Feld A1 zum Beispiel „Überschrift“ und in das Feld B1 zum Beispiel „Werte“ eingeben.
In der Spalte A (Überschrift) die jeweiligen Überschriften eingeben. Dies können wie im Beispiel Stadt, Zimmerart, Verpflegung, Saison, Storno und Buchung sein. Jede Überschrift wird dabei so oft untereinander wiederholt, wie die jeweilige Spalte später Werteausprägungen aufweist. Die Zeilen, die zu einer Überschrift gehören, dürfen sich nicht mit anderen Dimensionen überschneiden.
In der Spalte B (Werte) die entsprechenden Werte zu den Überschriften eingeben. Dies können wie im Beispiel zur Überschrift „Stadt“ die Werte „Düsseldorf“, „Hamburg“ und „München“ sein.
In der Zieltabelle können Sie nun die definierten Überschriften mittels der Funktion „GetHeaderName“ aufrufen:
- GetHeaderName(1) liefert die Überschrift der ersten Spalte (hier „Stadt“)
- GetHeaderName(2) liefert die Überschrift der zweiten Spalte (hier „Zimmerart“)
- usw.
Hinweis: Wenn man sich sicher ist, dass die Spalten immer bei „A“ anfangen und keine weiteren Spalten nachträglich hinzugefügt werden, kann man auch statt der Zahl die Funktion „Spalte()“ verwenden:
- GetHeaderName(Spalte()) gibt in jeder Spalte die Entsprechende Überschrift zurück
Durch das Kopieren der ersten Zelle in die folgenden Zellen der ersten Zeile wird damit die Schreibarbeit noch mal deutlich vereinfacht. Nun sollten alle Überschriften aus der RefernceData Tabelle in der ersten Zeile aufgelistet sein.
Als nächstes müssen sie den Befehl „=GetValue(<Zeilennummer>; <Spaltennummer>)“ in die folgenden Zeilen (ab Zeile 2) unter allen Überschriften eingeben.
- GetValue(1;1) gibt den 1. Wert der ersten Spalte zurück (hier „Düsseldorf“)
- GetValue(1;2) gibt den 2. Wert der ersten Spalte zurück (hier „Hamburg“)
- usw.
Dies wird erneut durch Verwendung der Excel-Funktionen ZEILE() und SPALTE() deutlich vereinfacht, wobei man auch hier wieder aufpassen muss, dass keine manuell eingefügten Zeilen oder Spalten das Ergebnis verfälschen. So muss man beispielsweise bei der Verwendung der Funktion ZEILE() wegen der Überschriften eine 1 subtrahieren, damit die Werteausprägungen „von vorne“ gezogen werden. Denken sie daran, dass sie den Befehl weit genug nach unten kopieren, da sonst nicht alle Kombinationen erscheinen.
Download
Kombinator.bas
Beispiel Hotel
Der Code
http://gist.github.com/AntonGoedecke/8a8d40f17c2f935368b7fd8420d909fc