Web 服务无法评估多个参数

Web 服务无法评估多个参数

我正在尝试使用包含特定日期的其他单元格,用来自 coindesk API 的 JSON 响应填充一个单元格。

以下是该公式的一个小截图:

在此处输入图片描述

仅当我使用 start 参数而不使用其他任何参数时,此方法才有效。在任何其他情况下,其计算结果为 #VALUE。

你知道我该怎么做才能解决这个问题吗?

答案1

仅当我使用 start 参数而不使用其他任何参数时,此方法才有效。在任何其他情况下,其计算结果为 #VALUE。

来自coindesk API 主页

我们通过以下端点提供比特币价格指数的历史数据:

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,日期需要转换。仅使用原始单元格引用即可提取底层数值。


*除了“购买日期”中的一个空格字符无法保留有一个有效的超链接。

相关内容