Ребята, привет
Сегодня хотел с вами поделиться о том, как подтянуть в Excel ценник монеты с coinmarketcap, достаточно простыми манипуляциями и в пару кликов
Да, достаточно много уже готовых таблиц и решений, если поискать. Но в своё время, когда искал и разбирался сам, я потратил целый день на то, что бы решить эту задачу
Например, готовые таблицы, каких их только нет и какие только не встречал. Попадались даже с макросами, которые логи цены по временному шагу пишут и т.д. с кучей настроек, как в самолёте
Но в готовой таблице нет объяснения всех нюансов, как она сделана и т.д. И это было проблемой, так как мне нужна была только часть функций, а осваивать эксель до всех его тонкостей не хотелось
Зачем мне это нужно было?
Я хотел сделать таблицу по ценам того что получил, например, с баунти и что уже есть на маркеткап, выдрать это по api и иметь возможность обновить с экселя. Не хотелось держать это с общим портфелем и смешивать всё. А общая картина по пулу монет нужна была
В конечном итоге всё превратилось в 9 столбов
- Название монеты и её тикер
- Цена на пре-ико и ико в баксах (это забивалось в ручную)
- Цена в долларе и битке по маркету
- Кол-во монет (вносилось вручную)
- Умножение кол-ва с выводом суммы в баксе и битке
Весь процесс добавления данных, который занимает 30 секунд, разложен в пошаговых картинках. В силу обновлений API на койнмаркете, я обновил визуальную инструкцию
В редакторе мы прописывает такого рода код:
let
Источник = Json.Document(Web.Contents("https://api.coinmarketcap.com/v2/ticker/2752/?convert=BTC&limit=10")),
data = Источник[data],
quotes = data[quotes],
usd = Record.RenameFields(quotes[USD], {"price", "price_usd"}),
usd1 = Record.RenameFields(usd, {"volume_24h", "price_btc"}),
btc = Record.RenameFields(quotes[BTC], {"price", "price_btc"}),
result = Record.Combine({data, usd1, btc}),
#"Преобразовано в таблицу" = Record.ToTable(result),
#"Строки с применным фильтром" = Table.SelectRows(#"Преобразовано в таблицу", each ([Name] = "name" or [Name] = "price_btc" or [Name] = "price_usd" or [Name] = "rank" or [Name] = "symbol"))
in
#"Строки с применным фильтром"
Где наша основная строчка это:
https://api.coinmarketcap.com/v2/ticker/512/?convert=BTC&limit=10
А прибавка:
/?convert=BTC&limit=10
Добавит нам цену BTC в импорт данных по API.
По хорошему, всё дальнейшее изменение строчек идёт по id на маркете, в нашем случае ID Stellar - 512, у другого токена будет другой номер, вот и вся разница
Как видите всё достаточно просто и занимает немного времени. Таблицу и данные можно скомпоновать и оформить как удобно, с другими наворотами и возможностями экселя, красотой и прочим. Но это уже другая история
Кстати, во вкладке данные есть есть значок “Обновить всё”. Это собственно та волшебная кнопка, которая синхронизирует нашу таблицу по апи с койнмаркеткап. Но маркет опять же ввёл ограничение на эту функцию и если у вас больше 40 позиций, вы получите временный бан. Пока что, я не знаю это связанно с количеством обновлений за небольшое время, или это вопрос скорости и бан получается из-за того что идёт массовый запрос 100 позиций, например.
Данная инструкция написана с использованием Excel 2016. Для более ранних версий, есть дополнение
В более ранних версиях (2013 и 2010 с SP1, не ниже) для реализации этой идеи необходимо установить надстройку Power Query. Она бесплатная и легко скачивается с сайта Microsoft. В этом случае на 5-й страничке запрос будет создаваться не на вкладке "Данные", а на вкладке "Power Query". Все остальное без изменений.
Спасибо, буду рад если это кому-то поможет и сэкономит время
Статья так же продублирована на steemit и medium в поддержку блог-начинаниям, так что буду рад внимаю
https://steemit.com/@lilusghttps://medium.com/@SergeyL