答案1
仅当我使用 start 参数而不使用其他任何参数时,此方法才有效。在任何其他情况下,其计算结果为 #VALUE。
我们通过以下端点提供比特币价格指数的历史数据:
https://api.coindesk.com/v1/bpi/historical/close.json
默认情况下,这将返回前 31 天的数据。
和
?开始=<值>&结束=<值>允许返回特定日期范围的数据。必须列为一对开始和结束参数,日期格式为 YYYY-MM-DD……
如果仅提供开始参数,则会被忽略并返回默认的 31 天,即使提供的日期无效!如果您提供两个参数,则会检查日期,如果其中一个无效,则会返回错误而不是 JSON 数据。
现在让我们看一下您的电子表格:
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
您的 BTC2DATE 公式是:
=WEBSERVICE("https://api.coindesk.com/v1/bpi/historical/close.json?start=[@[Buy Date]]&end=[HelpDate]")
丹尼尔在对你的问题的评论中建议用以下内容替换它:
="https://api.coindesk.com/v1/bpi/historical/close.json?start=[@[Buy Date]]&end=[HelpDate]"
查看传递给 的实际 URL WEBSERVICE()
。结果是文字字符串*:
https://api.coindesk.com/v1/bpi/historical/close.json?start=[@[BuyDate]]&end=[HelpDate]
问题就在这里。结构化单元格引用在 Excel 字符串中不起作用!它们必须像普通单元格引用一样连接起来。
最后,解决方案如下:
=
WEBSERVICE(
"https://api.coindesk.com/v1/bpi/historical/close.json?start="
&TEXT([Buy Date],"yyyy-mm-dd")&"&end="
&TEXT([HelpDate],"yyyy-mm-dd")
)
请注意,至少对于 Excel 2007,日期需要转换。仅使用原始单元格引用即可提取底层数值。
*除了“购买日期”中的一个空格字符无法保留和有一个有效的超链接。