2017-01-20 8 views
0

Ich habe eine Frage, die mich ratlos hat. Ich fühle mich der Antwort sehr nahe, kann aber keine adäquate Lösung finden. Ich habe versucht, IF-Anweisungen verschachtelt, die UND-Funktion enthält, enthält die OR-Funktion, und ich kann nicht mit etwas robust genug kommen diese FrageGet Excel zum Erstellen von Datengruppen basierend auf Zellenwerten

Hier zu beantworten meine Frage

ich ein Programm bin erstellen, die automatisch analysiert eine Aktie unter Verwendung einer Oszillatorgleichung. Die Ergebnisse dieser Gleichungen (theoretisch) sagen voraus, wie sich die Aktie in naher Zukunft entwickeln wird.

In dieser Gleichung Formel wird eine Aktie als unterkauft, wenn der berechnete Oszillator unter 30 ist und überkauft, wenn es über 80 ist. Ich möchte die Zellen durch den Inhalt des berechneten Oszillatorwerts gruppieren.

Der Beginn der Periode beginnt mit der ersten Instanz von einem Wert bei oder unter 30 nach dem vorherigen Auftreten von einem Wert bei oder über 80

Die Periode mit dem ersten Auftreten von einem Wert bei oder geschlossen ist, über 80 nach dem zuvor ermittelten = < 30 Wert.

Es wird vorkommen, dass ein Wert nicht in einen Zeitraum passt. Beispiel: Ein Wert von 50 zwischen dem Ende der letzten Periode und dem Beginn der nächsten Periode enthält keine Gruppe.

Ich habe 2 Bilder beigefügt.

Das erste Bild ist ein Beispiel dafür, wie die Daten aussehen könnten. Die% D-Spalte ist das berechnete Oszillatorergebnis. Es ist wichtig zu beachten, dass ich diese Lösung auf mehrere Aktien mit jeweils unterschiedlichen Daten erweitern möchte. Ich werde es verwenden, um Aktien über unterschiedliche Zeiten zu analysieren (sagen wir einen 6-Monats-Zeitraum oder einen 12-Monats-Zeitraum). Daher muss die Lösung dynamisch genug sein, um unterschiedlichen Zellmengen und unterschiedlichen Datenverteilungen gerecht zu werden.

Das zweite Bild ist ein Beispiel dafür, wie das Ergebnis aussehen soll. Ich habe einen Kommentar hinzugefügt, um die Gründe für die Gruppierung zu erläutern, falls meine obige Beschreibung keinen Sinn ergibt.

Bild 1 Image 1- example of what input data could look like

Bild 2 Image 2- Example of what I would like the desired result to look like

Bitte lassen Sie mich wissen, ob ich etwas für Sie klären können. Irgendwelche Ideen oder Unterstützung wird sehr geschätzt

+0

Suchen Sie eine Excel oder VBA-Lösung? –

+0

Und am Ende von Punkt 2 für Wert 80 sollte es auch im Periodenfeld eine 2 geben, oder? –

+0

@VBA Pete du bist richtig. Ich habe im Beispiel eine 2 verpasst. Guter Fang. Es ist mir egal, ob es VBA oder EXCEL ist. Was immer einfacher für dich ist. Ich habe mich mit beiden –

Antwort

1

Setzen Sie dieses in B2 und abschreiben:

=IF(AND(NOT(ISNUMBER(B1)),A2<=30),MAX($B$1:B1)+1,IF(MAX($B$1:B1)=0,"",IF(AND(ISNUMBER(B1),A1>=80),"",B1))) 

enter image description here

+0

Nein ganz richtig versucht. Wenn Sie zwei 80 nacheinander haben, wird es beide in der Periode enthalten. –

+0

@VBAPete Blick auf den letzten Kommentar Ich glaube, die zweite 80 war ein Tippfehler, wie es sollte größer als 80 gewesen sein. –

+0

@Scott Craner Ich entschuldige mich für den Mangel an Klarheit. VBAPete ist korrekt.Diese zweite 80 war kein Tippfehler und leider bricht die Formel zusammen, wenn es 80 aufeinanderfolgende Werte gibt. –

Verwandte Themen