Webservice bewertet nicht mit mehreren Argumenten [REST-API]

406
dawg

Ich versuche, eine Zelle mit einer JSON-Antwort aus der Coindesk-API zu füllen, wobei andere Zellen verwendet werden, die bestimmte Datumsangaben enthalten.

Hier ist ein kleiner Screenshot der Formel:

Webservice bewertet nicht mit mehreren Argumenten [REST-API]

Dies funktioniert nur, wenn ich das Startargument und nichts anderes verwende. In allen anderen Fällen wird es als #WERT ausgewertet.

Wissen Sie, was ich tun kann, um das zu lösen?

0
Haben Sie überprüft, dass Excel die URL ordnungsgemäß erstellt? Daniel B vor 6 Jahren 0
Wenn Sie eine Frage posten, ist es eine sehr gute Idee, nicht nur einen Screenshot zu posten, sondern auch die tatsächlichen Formel- und Tabellenkalkulationsdaten. (So ​​wie ich es in meiner Antwort getan habe.) Auf diese Weise können Responder die Daten leicht kopieren und zu Testzwecken in eine Tabelle einfügen. robinCTS vor 6 Jahren 0

1 Antwort auf die Frage

0
robinCTS

Dies funktioniert nur, wenn ich das Startargument und nichts anderes verwende. In allen anderen Fällen wird es als #WERT ausgewertet.

Von der Coindesk-API-Startseite :

Wir bieten historische Daten aus unserem Bitcoin-Preisindex über folgenden Endpunkt:

https://api.coindesk.com/v1/bpi/historical/close.json 

Standardmäßig werden die Daten der letzten 31 Tage zurückgegeben.

und

? start = <VALUE> & end = <VALUE> Ermöglicht die Rückgabe von Daten für einen bestimmten Datumsbereich. Muss als Paar von Start- und Endparametern aufgeführt werden, wobei Datumsangaben im Format JJJJ-MM-TT angegeben werden…

Wenn Sie nur den Startparameter angeben, wird dieser ignoriert und der Standardwert von 31 Tagen wird zurückgegeben, auch wenn das angegebene Datum ungültig ist! Wenn Sie beide Parameter angeben, werden die Datumsangaben überprüft, und wenn beide ungültig sind, wird anstelle der JSON-Daten ein Fehler zurückgegeben.


Nun sehen wir uns Ihre Tabelle an:

Coin Euro Buy Date Units PPU/EUR PPU/BTC BTC2DATE HelpDate HelpString DASH EUR 400.00 2017-08-15 2.21717893 180.4094359 #VALUE! 2017-08-16 2017-08-16 DASH EUR 400.00 2017-08-17 1.67020458 239.4916196 #VALUE! 2017-08-18 2017-08-18 

Ihre BTC2DATE-Formel lautet:

=WEBSERVICE("https://api.coindesk.com/v1/bpi/historical/close.json?start=[@[Buy Date]]&end=[HelpDate]") 

Was Daniel in seinem Kommentar zu Ihrer Frage vorschlug, war, ihn durch Folgendes zu ersetzen:

="https://api.coindesk.com/v1/bpi/historical/close.json?start=[@[Buy Date]]&end=[HelpDate]" 

um die tatsächliche URL anzuzeigen, an die weitergeleitet wird WEBSERVICE(). Dies stellt sich als Literal-String * heraus:

https://api.coindesk.com/v1/bpi/historical/close.json?start=[@[BuyDate?

Und darin liegt das Problem. Strukturierte Zellreferenzen funktionieren nicht in Excel-Zeichenfolgen! Sie müssen genau wie normale Zellbezüge verkettet werden.

Und hier ist schließlich die Lösung:

= WEBSERVICE( "https://api.coindesk.com/v1/bpi/historical/close.json?start=" &TEXT([Buy Date],"yyyy-mm-dd")&"&end=" &TEXT([HelpDate],"yyyy-mm-dd") ) 

Beachten Sie, dass zumindest für Excel 2007 die Datumsangaben konvertiert werden müssen. Wenn Sie nur die Rohzellenreferenzen verwenden, werden stattdessen die zugrunde liegenden numerischen Werte abgerufen.


* Mit Ausnahme von ein Leerzeichen in „Buy Date“, die zu halten unmöglich ist, und einen Arbeits Hyperlink haben.