Я пытаюсь заполнить ячейку ответом JSON от API Codesdesk, используя другую ячейку, содержащую определенные даты.

Вот небольшой скриншот формулы:

Это работает, только если я использую аргумент начала и ничего больше. В любом другом случае он оценивается как #VALUE.

Вы знаете, что я могу сделать, чтобы решить эту проблему?

1 ответ1

0

Это работает, только если я использую аргумент начала и ничего больше. В любом другом случае он оценивается как #VALUE.

На домашней странице API Codesdesk:

Мы предлагаем исторические данные из нашего индекса цен на биткойны через следующую конечную точку:

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

По умолчанию это вернет данные за последние 31 день.

а также

?start = <VALUE> & end = <VALUE> Позволяет возвращать данные за определенный диапазон дат. Должен быть указан как пара начальных и конечных параметров с датами, указанными в формате ГГГГ-ММ-ДД…

Если вы указываете только начальный параметр, он игнорируется и возвращается значение по умолчанию 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 даты должны быть преобразованы. При использовании только необработанных ссылок на ячейки вместо этого используются базовые числовые значения.


* За исключением пробела в "дате покупки", его невозможно сохранить и иметь работающую гиперссылку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .