Datum darstellen
#1
Hey Leute.

Ich habe hier ein kleine Problem.
Ich habe zwei Datums. Z.b. den 10.10.2010 und den 10.11.2010.

Nun habe ich eine Formel die diese beiden Daten verarbeitet. =BDP("EUR/USD 1110210@10102010 Curncy"","bid-price")

vor dem @ steht das hintere Datum, hinter dem @ das vordere Datum in MMDDYYYY.

Nun habe ich tausende Datums die ich so in diese Formel packen muss. Die will ich natürlich nicht alle händisch eingeben.

Das Problem - die Formel (BDP) basiert auf einem Excel Add-in mit einer relatime API - und die Formel funktioniert nur richtig, wenn die Werte "hart" in der Formel stehen.
Sobald ich anfange mit Text() das Datum aus den Zellen in die Formel zu verlinken funktioniert die Formel nicht mehr und spuckt falsche Werte aus.

Hat jemand eine Idee, wie ich das Datum als harten Wert in die Formel bekomme ohne ihn jedes mal händisch einzutippen?
Top
#2
Hallo,

mit VBA und cells.formula sollte es gehen.

mfg
Top
#3
(05.07.2018, 21:00)StrammerMax schrieb: Hat jemand eine Idee, wie ich das Datum als harten Wert in die Formel bekomme ohne ihn jedes mal händisch einzutippen?

Hallo,

z.B. per VBA. Wink

Gruß Uwe
Top
#4
VBA habe ich schon genutzt - kann ich aber nicht.

Könnte mir vielleicht jemand einen Anhaltspunkt geben mit dem ich weiter experimentieren kann?

Ich habe euch mal eine Beispieldatei angehängt wie das bei mir ungefähr aussieht.
Für alle Daten soll die Formel aufgestellt werden.
Das = vor der Formel fehlt jetzt, weil ich das Add-On hier nicht habe und ich die Formel sonst nicht speichern kann.


Angehängte Dateien
.xlsx   Template.xlsx (Größe: 9,85 KB / Downloads: 5)
Top
#5
Hallöchen,

hier habe ich gestern mal ansatzweise beschrieben, wie man eine Formel per Formel erstellen kann Smile
http://www.clever-excel-forum.de/Thread-...#pid126127
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#6
=BDP("EUR/USD 1110210@10102010 Curncy"","bid-price")

wird allgemein (habe ein überschüssiges " gelöscht) zu

=BDP("EUR/USD "&TEXT(B1;"TTMMJJJJ")&"@"&TEXT(A1;"TTMMJJJJ")&" Curncy","bid-price")
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • StrammerMax
Top
#7
(06.07.2018, 08:27)LCohen schrieb: =BDP("EUR/USD 1110210@10102010 Curncy"","bid-price")

wird allgemein (habe ein überschüssiges " gelöscht) zu

=BDP("EUR/USD "&TEXT(B1;"TTMMJJJJ""@""")&TEXT(A1;"TTMMJJJJ")&" Curncy","bid-price")

So geht das eben genau nicht.

=BDP("EUR/USD "&TEXT(C6;"MMDDYY")&"@"&TEXT(A6;"MMDDYY")&" Curncy"; "px bid")

--> dann spuckt er falsche Werte aus. In der Formel müssen die Werte "hart" integriert werden.
Top
#8
Tja, wenn Du meine Lösung nicht 100%ig übersetzst ... wieso machst Du aus JJJJ statt YYYY einfach YY? Die Vertauschung von M und D scheint hingegen korrekt zu sein; war nicht so einfach zu erkennen aufgrund Fehlers im Beispiel. Also Deine Schuld, nicht meine.

Es gibt in keiner einzigen Excel-Formel die Beschränkung auf einen harten String, anstelle einer stringerzeugenden Formel.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • StrammerMax
Top
#9
LCohen mit deiner Ausführung hat es funktioniert. Vielen, vielen Dank.

Brauche aber nochmal eure Hilfe.

=BDP("EURUSD Curncy";"INTERVAL_END_VALUE"; "END_DATE_OVERRIDE=20060201"; "MARKET_DATA_OVERRIDE=px_last")

Der harte Wert 20060201 = 01.02.2006 soll wieder durch das Datum im Format TTMMJJ aus Zelle  B1 erstezt werden.

Die vielen Anführungszeichen verwirren mich - bekomme es nicht zum laufen.

=BDP("EURUSD Curncy";"INTERVAL_END_VALUE"; "END_DATE_OVERRIDE="&TEXT(B1;"TTMMJJ)"; "MARKET_DATA_OVERRIDE=px_last")

=BDP("EURUSD Curncy";"INTERVAL_END_VALUE"; "END_DATE_OVERRIDE="TEXT(B1;"TTMMJJ)"; "MARKET_DATA_OVERRIDE=px_last")

=BDP("EURUSD Curncy";"INTERVAL_END_VALUE"; "END_DATE_OVERRIDE=&TEXT(B1;"TTMMJJ)"; "MARKET_DATA_OVERRIDE=px_last")


Funktioniert leider alles nicht.
Top
#10
=BDP("EURUSD Curncy";"INTERVAL_END_VALUE"; "END_DATE_OVERRIDE="&TEXT(B1;"TTMMJJ"); "MARKET_DATA_OVERRIDE=px_last")

wobei Du evtl. Unzulänglichkeiten der Forumssoftware selbst noch verbesserst, z.B. EURUSD als EUR/USD.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • StrammerMax
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste