Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fragen für eine statistische Auswertung

Fragen für eine statistische Auswertung
24.03.2017 01:02:32
Frank
Liebe Excel-Spezialisten,
ich habe da eine echte Herausforderung, bei der ich auf Eure Ideen und Unterstützung bei der Umsetzung angewiesen bin, um mir die mühsame (und wiederkehrende) manuelle Auswertung einer Tabelle zu sparen, und ich hoffe, dass Ihr dabei helfen könnt.
In Spalte A steht das Datum, jede Zeile repräsentiert einen Monat (zumindest in dieser Tabelle, es gibt auch noch eine, da sind es Wochen-Abstände).
Beginnend ab D stehen in jeder zweiten Spalte verschiedene Prozentwerte, meist irgendwas zwischen -5% und +5%. Derzeit reicht es von Zeile 2 bis 159, aber im Laufe der Zeit (jeden Monat) erfolgt eine Ergänzung, wobei neue Zeilen oben (Zeile 2) eingefügt werden und die anderen Zeilen nach unten rutschen. Derzeit sind die Spalten bis AB belegt, weil es 13 Datenspalten plus Prozentwert-Spalten gibt. Es werden in Kürze mehr, die Logik ist aber immer gleich. In der ersten der zwei Spalten stehen die Beträge, in der zweiten die Prozentwerte dazu, die ich prüfen will.
Ich möchte nun innerhalb jeder Zeile automatisiert die Top 5, also die Spalten mit den höchsten fünf Werten, ermitteln und entsprechend ihrer Reihenfolge jeweils mit einer bestimmten Farbe markieren.
Nach meinem Verständnis ist so eine Anforderung mit der Funktion "Bedingte Formatierung" nicht möglich, da die konkreten Zellinhalte erstens völlig unterschiedlich zueinander innerhalb der Zeile sind und zweitens in keinerlei Beziehung zu etwas stehen, das man als Kriterium heranziehen könnte. Zudem müsste ich für jede Zeile ggf. andere Kriterien definieren, weil sich die Werte von Zeile zu Zeile natürlich auch unterscheiden.
Insofern gehe ich mal davon aus, dass man es mit VBA lösen kann bzw. muss. Ich würde mir vorstellen, dass man die gewünschten Farbcodes als Variablen definiert, damit man sie leicht anpassen kann, dann die Anzahl der belegten Zeilen ermittelt (noch besser wäre es, den Bereich vom Nutzer abzufragen), in einer Schleife für jede Zeile die Spalten im Zweier-Abstand durchgeht, die Werte ausliest und zusammen mit ihrer Position in einem Array speichert, die Reihenfolge / Wertigkeit ermittelt und dann die Farb-Codes für die höchsten fünf Werte zuordnet.
In der Spalte neben der letzten Prozentwert-Spalte soll das Script die Überschriften der Top 5-Spalten einfügen.
In der letzten Spalte soll dann durch das Script eine Formel gebildet und eingefügt werden, die sich aus den ermittelten Zellen zusammensetzt und die Prozentwerte mit einem Faktor multipliziert, der an einer geeigneten Stelle abgelegt (oder durch das Script vom Nutzer abgefragt wird). Ich will durch Summe über alle Zeilen in Erfahrung bringen, ob die Top 3 reicht oder ob ich besser die Top 5 pro Zeile nehmen muss, oder gar die Top 8 um das beste Ergebnis zu erzielen.
Ich hänge mal einen Auszug der Tabelle an, in der ich mit einer Zeile manuell das vorgenommen habe, was das Script tun soll:
https://www.herber.de/bbs/user/112388.xlsx
Im zweiten Registerblatt habe ich die Matrix aufgebaut, die nach meinem Verständnis vom Script (im Speicher) gebildet werden müsste, um die Top 5 zu ermitteln. Ich lasse mich aber auch gerne eines Besseren belehren.
Einen Teil davon würde ich sicher hinbekommen und irgendwann würde ich mir das Ganze vielleicht auch zusammenstückeln und zum Laufen bringen, aber das ist wenig effektiv, da ich noch etliche weitere Dinge mit dieser Tabelle vorhabe, das einiges an Zeit fressen wird.
Daher denke ich, ich stelle es hier mal ein und schaue einfach mal, ob nicht jemand etwas (einigermaßen) Passendes "aus dem Hut zaubern" kann, weil er / sie etwas in dieser Richtung schon mal umgesetzt hat - ggf. teilweise oder ähnlich, so dass es adaptiert werden kann. Vielleicht gibt es ja auch noch einen eleganteren Ansatz als den von mit geschilderten, an den ich bisher noch nicht gedacht habe.
Ich bin gespannt und freue mich auf konstruktive Vorschläge. Vielen Dank im Voraus!
Viele Grüße
Frank

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auftragsarbeit?
24.03.2017 08:42:46
Fennek
Hallo,
nach einer ersten Sichtung der Datei erscheint es möglich, dürfte aber mehr als 1 Stunde "Tüftelarbeit" werden. Welche Vergütung ist denn geplant?
mfg
AW: Auftragsarbeit?
24.03.2017 11:47:23
Frank
Hallo Fennek,
keine Ahnung. Da es kein dienstliches / professionelles Anliegen ist, sondern nur meinem privaten Interesse dient, habe ich darüber bisher nicht nachgedacht. Was schwebt Dir denn vor?
Viele Grüße
Frank
AW: VBA?
24.03.2017 14:43:41
Fennek
Hallo Frank,
für diese wesentlichen Teile habe ich einen VBA-Code entwickelt, mit dem letzten Feinschliff wird das ca. 1 Stunde brauchen.
Da es aber von "Ransi" eine Lösung gibt, hat sich das wohl erledigt.
mfg
(falls Bedarf besteht, ein "normaler" Stundensatz)
Anzeige
AW: VBA?
24.03.2017 15:58:16
Frank
Hallo Fennek,
in der Tat, ransi hat da was hochgeladen, was mich ziemlich erstaunt hat, da ich nicht mit einem Formel-basierten Ansatz gerechnet hatte. Ich habe ihm jetzt mal ein paar Fragen dazu gestellt, wieso es denn so möglich ist. Für VBA hatte ich den Ansatz ja skizziert und hätte einen entsprechenden Code-Vorschlag vermutlich relativ leicht nachvollziehen können, hier gelingt es mir noch nicht.
Mal sehen, ob er bereit ist, ein paar Ausführungen dazu zu geben. Ich würde mich freuen, wenn es mit wenigen Formeln funktioniert, aber nur wenn ich die Ideen dahinter und die Gründe, warum sie das gewünschte Ergebnis liefern, verstehe, kann ich es auch auf die anderen Tabellen adaptieren.
Viele Grüße
Frank
Anzeige
AW: Fragen für eine statistische Auswertung
24.03.2017 09:44:26
ransi
Hallo Frank,
Ich hab mich mal an deiner ersten Zeile orientiert und das für die anderen angepasst.
Als Ansatz:
https://www.herber.de/bbs/user/112393.xlsx
ransi
AW: Fragen für eine statistische Auswertung
24.03.2017 15:44:48
Frank
Hallo Ransi,
wow, ich fall' um. Du hast das ohne VBA hinbekommen?
Die Funktion KGRÖSSTE, welche Du in der bedingten Formatierung verwendest, kannte ich bisher nicht. Ich habe unter https://support.office.com eine Erklärung gefunden, deren Beispiel nachvollziehbar ist.
Du verwendest allerdings eine Bedingung für die Matrix und da ich diese Herangehensweise nicht auf den ersten Blick durchschauen konnte, habe ich die Formel in fünf freie Zellen kopiert, um sie zu zerlegen.
Für den höchsten Rang liefert die WENN-Klausel 0,0534 als Ergebnis, was dem Prozentwert aus J2 entspricht. Nun ist dies aber weder der höchste, noch der niedrigste Prozentwert in dieser Zeile, daher verstehe ich noch nicht, wieso man mit diesem Ergebnis etwas anfangen kann.
Eine Ebene höher, also in Verbindung mit der KGRÖSSTE-Funktion, liefert sie den Inhalt aus I2 als höchsten Wert, den aus G2 als zweithöchsten usw. Für die Farb-Markierung sind aber nicht die Werte in den Daten-Spalten C, E, G, I usw. von Bedeutung, sondern die darauf basierenden Prozentwerte in den jeweils daneben liegenden Spalten D, F, H, J usw. Wieso kann man damit weiterarbeiten?
Im dritten Schritt wird das Ergebnis dann noch mit C2 verglichen. Das liefert „FALSCH“ für den höchsten Wert (wobei wie gesagt, zuvor ja nicht der höchste Prozentwert, sondern der höchste nominale Wert ermittelt wurde, der eigentlich gar keine Rolle spielen sollte) und „#ZAHL!“ für die vier anderen Ränge. Was bringt also dieser Vergleich?
Du verwendest zudem nur eine Formel pro Rang / Farbe für den gesamten Bereich C2 bis AB6 und ich verstehe nicht, wieso das möglich ist. Die Zeilen basieren zwar aufeinander (die Prozentwerte zeigen die Veränderung von Zeile zu Zeile innerhalb jeder Spalte), für die Markierung zählt aber Zeile für Zeile unabhängig von den den anderen.
Fazit:
Ich sehe das Ergebnis mit der Markierung der richtigen Zellen, nur verstehe ich im Moment noch nicht, wie das möglich ist. Es wäre super, wenn Du ein paar Erklärungen dazu geben könntest.
Anzeige
AW: Fragen für eine statistische Auswertung
24.03.2017 17:16:00
ransi
Hallo,
KGRÖSSTE(WENN($C2:$AB2<1;$C2:$AB2);1)
Eigentlich ist das eine MAtrixformel.
Die bedingte Formatierung und die Gültigkeitsprüfung kann damit aber ohne die {} umgehen.
Die Formel macht folgendes:
Suche in in C2:AB2 den größten wert.
Aber nur wenn er <1 ist. Also ein Prozentwert ist.
Für den 2t größten genauso:
KGRÖSSTE(WENN($C2:$AB2<1;$C2:$AB2);2)
usw.
Man könnte die Suche auch auf die graden Tabellenspalten beziehen.
ungetestet:
=KGRÖSSTE(WENN(REST(SPALTE($C2:$AB2);2)=0;$C2:$AB2);1)
AW: Fragen für eine statistische Auswertung
24.03.2017 20:21:53
Frank
Hallo Ransi,
vielen Dank für die Erklärung. Interessanter Ansatz, den ich mir merken werde. Darauf muss man erst mal kommen...
Ich hatte in der Zwischenzeit auch noch damit experimentiert und habe mich dabei überlegt, dass es die Sache wahrscheinlich vereinfachen könnte, wenn ich Daten- und berechnete Spalten (%) voneinander trenne, anstatt sie wie bisher in einer Tabelle darzustellen. Das ist nicht nur übersichtlicher, sondern es verkürzt auch die Formeln.
Also habe ich die Tabelle kopiert, in der ersten (heißt nun "Monthly Data") alle berechneten Spalten gelöscht und in der anderen (heißt nun "MPCH-%") alle Datenspalten gelöscht. Nun reichen die Daten jeweils von A bis O (zumindest derzeit). Dann habe ich mit der Formel
=WENN(ODER(ISTNV('Montly Data'!C2);ISTNV('Montly Data'!C3));0;'Montly Data'!C2/'Montly Data'!C3-100%)
die Berechnung durchgeführt. Das ist deutlich länger als die bisherige Formel:
=C2/C3-100%
aber ich kann sie ja mit Auto-Ausfüllen weiterhin nach rechts und unten verteilen. Die WENN-Funktion hat sich als notwendig herausgestellt, weil in den zugrunde liegenden Datenspalten teilweise #NV steht, da es vom jeweiligen Datum keine Daten gibt, so dass in der Zelle mit der verwendeten SVERWEIS-Funktion kein sinnvolles Ergebnis geliefert wird. Dadurch war zunächst keine Farbmarkierung in den betreffenden Zeilen möglich. Durch diese Prüfung geht es nun für alle Zeilen.
Würdest Du mir bitte noch sagen, wie der Bezug auf die Spalte C in der Formel
=C2=KGRÖSSTE($C2:$O2;1)
bewirkt, mit der ich die Farben setze? Der ist wohl dafür da, dass ich nur eine Formel pro Rang für das ganze Blatt benötige, aber ich bin mir noch nicht sicher, wie genau die Logik dahinter ist.
Unter die Tabelle werde ich nun versuchen, eine kleine Statistik zu erstellen, indem ich pro Spalte zähle, wie oft jede Farbe (also der Rang) vorkommt. Mit SUMMEWENN(S) und ZÄHLENWENN(S) habe ich schon viel gearbeitet, und ich werde sicher einen Hinweis in der Hilfe oder im Web finden, wie man dabei auf die Farben referenzieren kann.
Die Matrixformeln rechts neben der Tabelle, mit der es Dir gelungen ist, die Überschriften (also die Namen der ETFs, deren Werte dort ausgewiesen werden) in der von mir angedachten Auflistung nach Rang auszugeben, ist mir auch noch suspekt. Die muss ich auch erst mal auseinander nehmen, um zu sehen, was die Einzelteile für Ergebnisse liefern, damit ich Dich dann ggf. fragen kann, warum Du so vorgegangen bist. Ich muss aber eins nach dem anderen abarbeiten, sonst wird die Beschreibung zu lang. Außerdem möchte ich Dich natürlich nicht unnötig beschäftigen, wenn ich es auch selbst leicht erkennen kann. Mal sehen, wie weit ich komme...
Vielen Dank bis hierher auf jeden Fall!
Viele Grüße
Frank
Anzeige
AW: Fragen für eine statistische Auswertung
24.03.2017 22:21:49
Frank
Hallo ransi,
ich habe wieder fortgesetzt und nun sieht es schon ganz gut aus. Ich konnte die Matrix-Formeln für die Top-Liste rechts neben der Tabelle adaptieren und habe nun mal im Netz geschaut, was Du da so verwendest:
- Mit der Index-Funktion holst Du die gewünschte Überschrift, also den Namen des ETFs.
- Die Funktion KGRÖSSTE liefert den x-größten Wert, allerdings verwendest Du statt des Rangs 1 bis 5 bei der Farb-Formel hier die Spaltenfunktion. Da steige ich gerade aus. Wieso beziehst Du Dich in dessen Parameter auf A1 bis E1? Das ist die Überschriftenzeile, aber nicht die vollständige.
- Wie dann der Vergleich am Ende noch wirkt, kann ich nicht nachvollziehen, weil ich das mit der Spalte noch nicht verstehe.
Nichtsdestotrotz funktioniert es. Ich habe die Tabelle angehängt, weil es dann einfacher ist, zu prüfen, wie meine Adaption mit der aufgeteilten Tabelle aussieht: https://www.herber.de/bbs/user/112417.xlsx
Bei näherer Prüfung habe ich aber entdeckt, dass die Farb-Formel noch einen "Aussetzer" hat. Als ich die Matrix-Formel für die Top-Liste fertig hatte und deren Ergebnisse mit den vergebenen Farben der daneben liegenden Daten-Spalten vergleichen wollte, sah ich, dass es in der ersten Zeile zwei Mal die Farbe für Top 2 gibt. In der nächsten Zeile gibt es sie sogar drei Mal, ebenso in der dritten Zeile.
Ich hoffe, Du hast eine Idee.
Vielen Dank!
Frank
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige