Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1024to1028
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

Median, solange...

Median, solange...
13.11.2008 08:42:00
P.Mackes
Hallo
ich möchte gerne folgendes machen:
in einer Datei, die zeilenmäßig bis ans limit geht gibt eine variable anzahl von zeilen in einer spalte den unternehmensnamen und in einer anderen spalte den gazugehörigen aktienkurs auf tagesbasis aus, z.B. erst 50x company 1 mit den 50 tageskursen, dann 60x company 2 mit den dazugehörigen 60 kursen
jetzt will ich für das gesamte dokument, dass "solange in spalte x der selbe companyname steht, für die dazugehörigen aktienkurse der median, oder was auch immer, berechnet wird"
geht das auch ohne vba?
falls nicht, kann mir da jemand behiflich sein?
mfg

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Median, solange...
13.11.2008 10:15:45
serge
Hallo P.Mackes
versuch es mit in eiener neuen Spalte: =SUMMEWENN(B:B;X1;C:C) in x1 und runterkopieren
B= companyname Spalte
C= aktienkurs Spalte
Serge
AW: Median, solange...
13.11.2008 10:16:27
P.Mackes
okay, das problem hat sich noch leicht geändert:
ich bräuchte den median pro company genau 6 mal, für jedes quartal von 2007/01 bis 2008/02
dabei sind die quartalsenden wie folgt und in der form 20070101 formatiert:
1. quartal ist 20070330
2. quartal ist 20070629
3. quartal ist 20070928
4. quartal ist 20071231
5. quartal ist 20080331
6. quartal ist 20080630
(an wochenenden und feiertagen sind börsen ja bekanntlich geschlossen, daher variiert die länge des quartals von jahr zu jahr mitunter)
mfg
Anzeige
Beispeildatei!
13.11.2008 10:44:00
serge
Wie wär es mit einer kleiner Beispeildatei, dann kann mann dir sicher helfen.
Serge
Beispeildatei Zusatzfrage
13.11.2008 11:20:17
serge
Voch eine Frage
sind die COMNAM immer sortiert nach name?
Serge
AW: Beispeildatei Zusatzfrage
13.11.2008 11:33:00
P.Mackes
nicht alphabetisch sortiert
aber sortiert nach einem bestimmten code und datum
d.h. erst kommen 1.1.2007-30.06.2008 von company a
dann der gleiche zeitraum für company b usw.
und danach tauchen company a und b nicht wieder auf
AW: Beispeildatei!
13.11.2008 13:30:00
Reinhard
Hi P,
nicht getestet mit 65536 Zeilen, naja wirst ja merken was passiert :-) An deiner Beispielmappe scheint der Code zu klappen.

Sub tt()
Dim F As String, rng As Range, Von As Long, Bis As Long
Set rng = Range("D2").Resize(Range("A" & Rows.Count).End(xlUp).Row - 1, 1)
F = "=WENN(ODER(B2B3;UND(ODER(TEIL(A2;5;2)=""03"";TEIL(A2;5;2)=""06"";"
F = F & "TEIL(A2;5;2)=""09"";TEIL(A2;5;2)=""12"");TEIL(A3;5;2)TEIL(A2;5;2)));""x"";"""")"
rng.FormulaLocal = F
rng.Value = rng.Value
Von = 2
Do
Bis = Cells(Von, 4).End(xlDown).Row
Cells(Bis, 4) = Application.Average(Cells(Von, 3).Resize(Bis - Von + 1, 1))
Von = Bis
Loop While Bis 


Gruß
Reinhard

Anzeige
AW: Beispeildatei!
13.11.2008 13:51:08
P.Mackes
ich kriege einen "400" Fehler
muss ich die funktionen in der mappe durch ihre englischen äquivalente ersetzen, da ich englisches office nutze?
aber es klappt dann immer noch nicht

Sub tt()
Dim F As String, rng As Range, Von As Long, Bis As Long
Set rng = Range("D2").Resize(Range("A" & Rows.Count).End(xlUp).Row - 1, 1)
F = "=IF(OR(B2B3,AND(OR(PART(A2,5,2)=""03"",PART(A2,5,2)=""06"","
F = F & "PART(A2,5,2)=""09"",PART(A2,5,2)=""12""),PART(A3,5,2)PART(A2,5,2))),""x"","""")"
rng.FormulaLocal = F
rng.Value = rng.Value
Von = 2
Do
Bis = Cells(Von, 4).End(xlDown).Row
Cells(Bis, 4) = Application.Average(Cells(Von, 3).Resize(Bis - Von + 1, 1))
Von = Bis
Loop While Bis 


habe ich etwas übersehen?

Anzeige
Korrektur!
13.11.2008 13:51:45
Reinhard
Hi P,
nimm diesen Code, mein anderer rechnet falsch:

Sub tt()
Dim F As String, rng As Range, Von As Long, Bis As Long, Zei As Long
Zei = Range("A" & Rows.Count).End(xlUp).Row
Set rng = Range("D2").Resize(Zei - 1, 1)
F = "=WENN(ODER(B2B3;UND(REST(WERT(TEIL(A2;5;2));3)=0;TEIL(A3;5;2)TEIL(A2;5;2)));""x"";"""") _
rng.FormulaLocal = F
'Exit Sub
rng.Value = rng.Value
Von = 2
Do
Bis = Cells(Von, 4).End(xlDown).Row
Cells(Bis, 4) = Application.Average(Cells(Von, 3).Resize(Bis - Von + 1, 1))
Von = Bis + 1
Loop While Von 


Gruß
Reinhard

Anzeige
AW: Korrektur!
13.11.2008 13:55:02
P.Mackes
sorry
ich bin da echt nicht fit, was vba unterschiede englisch/deutsch in excel angeht
kannst du mir da noch etwas hilfestellung geben?
AW: Korrektur!
13.11.2008 20:57:00
P.Mackes
okay...habs endlich umgewurschtelt bekommen
scheint zu funktionieren...TAUSEND DANK!!!
AW: Korrektur!
13.11.2008 23:50:00
Reinhard
Hi P,
aus Interesse, ich hab ja kein engl. Excel, wie sieht der fertige Code aus?
Ich weiß schon, klar engl. Namen, dann Komma anstatt Semikolon, bei Zahlen ggfs. Punkt anstatt Komma und so Sachen, aber poste doch mal den funktionierenden Code.
Gruß
Reinhard
AW: Korrektur!
14.11.2008 00:45:00
P.Mackes
bei mir war das problem noch, dass das eigentlich beispiel einige spalten mehr hat, daher musste ich den code leicht anpassen
hier ein bsp. mit allen variablen
https://www.herber.de/bbs/user/56761.xls
und hier der code:

Sub tt()
Dim F As String, rng As Range, Von As Long, Bis As Long, Zei As Long
Zei = Range("A" & Rows.Count).End(xlUp).Row
Set rng = Range("AE2").Resize(Zei - 1, 1)
F = "=IF(OR(D2D3,AND(MOD(VALUE(MID(A2,5,2)),3)=0,MID(A3,5,2)MID(A2,5,2))),""x"","""")"
rng.FormulaLocal = F
'Exit Sub
rng.Value = rng.Value
Von = 2
Do
Bis = Cells(Von, 31).End(xlDown).Row
Cells(Bis, 31) = Application.Median(Cells(Von, 30).Resize(Bis - Von + 1, 1))
Von = Bis + 1
Loop While Von 


btw - haben:
'Exit Sub
rng.Value = rng.Value
irgendeinen Sinn?

Anzeige
AW: Korrektur!
16.11.2008 14:16:00
Reinhard
Hallo P,
Excelfunktionen sind sehr viel schneller als mit Vba Zelle für zelle auszuwerten. Deshalb schreibt man aus Bescchleinigungsgründen Formeln in eine Hilfsspalte, das geht sehr schnell und Ecel berechnet sie ruckzuck.
In dem Fall steht alle paar Zellen ein x in den Zellen. Nun braucht man ja die Formeln nicht mehr, sondern nur die "x"e,
mit rng.Vlaue=rng.value schmeißt man die Formeln raus, ist wie Bearbeiten--Inhalte Einfügen--Werte
Analog zu Strg+Pfeilnachunten bin ich dann schnell durch die Spalte gelaufen, von x zu x.
Das alles zusammen macht den Code schnell.
Gruß
Reinhard
Gruß
Reinhard
Anzeige
AW: Korrektur!
17.11.2008 01:50:50
P.Mackes
danke für den nachtrag und die erklärung Reinhard.
Leider hat sich die Sache bei mir jetzt etwas geändert, wohingegend ich das bisherige Makro nicht angepasst bekomme.
Vielleicht kann ich hier nochmal deine oder die Hilfe jemand anderes in Anspruch nehmen.
zur Aufgabe: zwar soll nach wie vor je Company auf Quartalsbasis der Spread medialisiert werden. Allerdings jetzt in Abhängigkeit eines bestimmten Datums (was dann zB in einer neuen Spalte angegeben wird) und nicht wie bisher entsprechend der Kalendarquartale.
Hier eine erweiterte Beispieldatei:
https://www.herber.de/bbs/user/56839.xls
Für die erste Firma z.B. sind die Quartalsbeginne wie folgt:
20070510
20070809
20071109
20080317
20080512
20080808
Sprich: Der erste Median umfasst die Spreads von 20070510-20070808, das zweite Quartal geht von 20070809-20071108 usw.
(dabei wäre nach wie vor zu beachten, dass ja bestimmten Daten nicht auftauchen können aufgrund von Wochenenden etc.)
Ist auch dies umsetzbar?
Vielen Dank schonmal für jegliche Hilfe^^
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige