@ DickT
Zum Inhalt:
Das Durchrechnen nach einer Aktien-Anzahl mit dem kleinstmöglichen Überhang ist falsch, da dadurch das gesamte eingesetzte Kapital riesig aufgebläht wird und bei einer Schieflage des Spreads das Risiko proportional zum Kapital steigt. Der Überhang kann maximal der Kursbewegung von 0,5 Aktien der wertmäßig kleineren Aktie entsprechen und wer damit ein Problem hat, sollte diese (zu teure) Aktie nicht handeln.
Dazu müssen Deine Formeln dahingehend korrigiert werden, daß die Position der wertmäßig kleineren Aktie nicht ausgeschöpft wird und um so viele Stücke abgestockt wird, bis die Kapital-Differenz minimal ist. Das geht für jede Kapitalhöhe.
Darüber hinaus ist die Benutzung von RUNDEN fragwürdig, da dabei das gewünschte Kapital überschritten werden kann, GANZZAHL ist die konservativere Variante.
Zur ursprünglichen Frage nach der Suche:
Die Funktion SVERWEIS hat ein optionales Argument, daß auch bei unsortierten Spalten den richtigen Wert liefert. Dazu biete ich eine unfertige Tabelle zum
TradingGame.de 2008 als Beispiel an. Dort wird exzessiver Gebrauch gemacht von SVERWEIS (= VLOOKUP).
Hilfsspalten lösen sehr viele Probleme. Die braucht man nicht auslagern, die kann man einfach ausblenden, daß sie optisch verschwinden. Mit Hilfspalten können auch sehr komplexe logische Bedingungen auf übersichtliche Art dargestellt werden, es bietet sich aus Übersichtsgründen und zur Fehlervermeidung nicht an, extrem komplexe Formeln in einer Zelle zusammenzufassen, obwohl es mit Hauptmenü / Extras / Formelüberwachung / Formelauswertung eine Art Einzelschritt-Debugger gibt.
Wenn ein Wert zweimal vorkommt, ist das bei Suchaufgaben ein
prinzipielles Problem, da er dann keine eindeutige Schlüssel-Eigenschaft mehr hat. Da ist dann die Frage, was dargestellt werden soll, der erste Wert, eine Zusammenfassung, eine Matrix-Konstante oder einer Werte-Liste in einem Feld.
Wird eine ganz normale geordnete Liste der Zeilen gebraucht, widerspricht das der vorigen Tabellenstruktur mit der Konzentration auf ein Ausgabe-Feld und es ist in jedem Fall eine umsortierte Ausgabe in einem weiteren Bereich vorzunehmen. Ob man das manuell, mit einem Makro, einer Tabellen-Funktion mit Matrix-Ausgabe oder einer Datenbank-Funktion macht, ist egal.
Für eine Funktion, die eine Matrix ausgibt, habe ich ein Elementar-Gerippe rangehängt, wobei es auch für einen Nicht-Programmierer kein Problem sein sollte, daraus was Sinnvolles zu machen.
Zur Eingabe von Matrix-Formeln muß zuerst der Ausgabe-Bereich markiert werden, dann die Formel in der Eingabezeile eingegeben und mit
Shift-Ctrl-Enter beendet werden.
Ansonsten ist das mit der Makro-Aufzeichnung schon der richtige Ansatz. Oft kann man durch das manuelle Weiterbearbeiten des Makros sehr gute Lösungen erhalten. Elegant sind auch Benutzer-definierte Excel-Funktionen, die wie Excel-eigene Funktionen aufgerufen werden können.
In Dritt-Quellen muß man nicht unbedingt nachschlagen, die Hilfe von Excel selbst, ist normalerweise aussagekräftig genug, wenngleich ihr Aufbau etwas gewöhnungsbedürftig ist und für das Erlernen der Sprache vielleicht nicht gerade super ist. Wenn man von "Arbeitsblattfunktionen, aufgeführt nach Kategorien" ausgeht (Dazu ins Suchfeld der Hilfe "Kategorie" eingeben und nach dem Punkt in der Liste suchen.) oder einfach die Hilfe bei der Funktionseingabe (bei Klick auf fx links neben der Eingabezeile) nutzt, kriegt man die Infos.
Das von Purri vorgeschlagene Einbinden von DLL's kann jedes überhaupt lösbare Problem auch wirklich lösen, ist aber meistens für einfache Berechnungen nicht erforderlich, die weder hochoptimiert sein müssen und auch keinen erweiterten Ressourcen-Zugriff auf Dinge brauchen, die in Excel prinzipiell nicht vorgesehen sind.
Wie gesagt, geht die vollständige Aufgaben-Lösung nicht am Ort, sondern erfordert einen weiteren Bereich für ein sortiertes Ergebnis. Für komplexere Abfragen von Datensammlungen, die über ODBC zugänglich sind, bietet sich das Excel-Add-In
XLODBC.XLA und die Arbeitsblattfunktion SQL.REQUEST an. Damit kann man aus Excel auch ganz normale ODBC-Abfragen ohne manuelle Import-Zwischenschritte machen. Mit SQL sind wesentlich komplexere Abfragen als mit den Excel-eigenen Datenbank-Funktionen möglich.
Benutzt man Excel als Eingabe-Datenbank für eine ODBC-Verbindung, muß die Lösung dann allerdings auf zwei Tabellen verteilt werden, da Excel-Tabellen nur mit ODBC abgefragt werden können, wenn sie nicht gerade geöffnet sind. (Ganz Mutige können eine offene Tabelle mit dem auch ansonsten unbedingt zu empfehlenden Datei-Freigabe-Tool
Unlocker freigeben - aber unbedingt vorher sichern! Bei jedem Speichern ist die Tabelle aber sofort wieder blockiert, bei darin aktivierten Makros leider schon beim Öffnen.)
@ Termin-Trader
Auch für Dich ist in der o. g. Beispiel-Tabelle zum
TradingGame.de 2008 vielleicht interessant, wie damit auf den einzelnen Tages-Seiten rausgefunden wird, ob ein Spieler neu ist. Zeigt die Spalte TRUE an, wird er einfach auf der Übersichtsseite dazugetragen. Fällt mir gerade ein, weil Du Dich dahingehend geäußert hast, daß das Einpflegen neuer Spieler einigen Aufwand bedeutet.
@ Jürgen
Wenn bei SVERWEIS als letzter Parameter nicht FALSCH angegeben wird, wird der verlangte Wert nicht als der genaue Suchwert, sondern als der erste nach der Ordnung höhere erlaubte interpretiert. Bei ungeordneten Spalten und fehlender Angabe sind die Werte unbrauchbar, da das Ergebnis nach einer internen Vorsortierung der Suchspalte so ausgeben wird, als ob die Werte an der verlangten sortierten Position gestanden hätten, wo sie aber nicht stehen.
@ all
Die Tabelle zum
TradingGame.de 2008 geht nicht bis zum Ende, da es mir bei dem exzessiven Gezocke nicht sinnvoll erschien, die Daten weiter auszuwerten. Außerdem wurden die gelieferten Daten während des Spiels geändert.
Ich hatte für Excel sogar ein Makro, daß automatisch für alle Spieler die Equity-Kurven erzeugte und eine PDF-Datei als Demo zu Bruno geschickt - aber wie gesagt, war mir der Zock-Faktor so hoch, daß mir jede weitere Beschäftigung damit sinnlos erschien, zumal ich selber solche Spiele nur sehr wenig befürworte. Mein Interessse wäre die Gewinnung sinnvoller Daten zum Trading-Verhalten gewesen, die ich hier aber nicht sehen konnte.
@ Bill
Als ich anfing zu schreiben, stand Deine Lösung mit SVERWEIS noch nicht da. So kann jeder sehen, daß ich einige Zeit (mit nur leichten Unterbrechungen) am Problem gearbeitet habe. Daß ich nicht abgeschrieben habe, deutet die Tabelle zum Trading-Game an, die ich nicht auch noch so schnell in der Zeit hätte faken können.