Інтерактивний гаманець, відразу попереджу інструмент створено лише для розуміння загальної ситуації, оперативну інформацію ви отримаєте лише на самій біржі, приклад таблиці тут відео на YouTube тут.
Кроки які необхідно виконати:
Обрати онлайн-веб-ресурс, з якого будемо отримувати курс криптовалюти.
На окремому листі функцією імпорту даних створити таблицю для отримання курсу криптовалюти на зараз.
Отримати курс USD з сайту НБУ.
В окремі клітинки запишіть назви, кількість, та ціну криптовалюти на дату покупки.
Опрацювати і адаптувати ці всі дані для використання в аналітичній таблиці.
Реалізувати аналітичну таблицю.
формулу для розрахунку різниці між двома курсами у доларах.
формулу для розрахунку різниці між загальною сумою в день покупки та загальною сумою зараз у доларах і гривні.
умовне форматування, щоб представити інформацію у зрозумілій формі.
Для старту нам потрібно отримувати курс крипти.
WorldCoinIndex надає простий API із відповідями JSON, у попередніх статтях показано детально як виокремити дані, тож маємо API і шаблон посилання:
Url : https://www.worldcoinindex.com/apiservice/ticker?key={key}&label=ethbtc-ltcbtc&fiat=btc
API приклад відповіді:
{
"Markets" : [
{
"Label" : "ETH/BTC",
"Name" : "Ethereum",
"Price" : 0.01948437,
"Volume_24h" : 28680.92498425,
"Timestamp" : 1461221820
},{
"Label" : "LTC/BTC",
"Name" : "Litecoin",
"Price" : 0.01948437,
"Volume_24h" : 28680.92498425,
"Timestamp" : 1461221820
}
]
}
API WorldCoinIndex є безкоштовним.
Обіцяють, що дані оновлюватимуться кожні 5 хвилин. Запити обмежені одним КЛЮЧОМ API на IP-адресу, максимум 70 запитів на годину.
Копіюємо посилання: https://www.worldcoinindex.com/apiservice/ticker?key={key}&label=ethbtc-ltcbtc&fiat=btc
Важливо зауважити, що формула та посилання буде використовувати певний ключ - key, label набір крипти та параметри fiat - валюта курсу, які потрібні веб-сайту для імпорту даних, і вона може не працювати, якщо ключ чи інші параметри змінено.
Щоб отримати доступ до API, вам потрібен КЛЮЧ key={key}, який треба скопіювати нижче на сайті і перенести в таблицю С14:
Формуємо посилання далі, параметр lable:
У стовпчику А необхідно внести усі скорочення назв крипти, що маєте у себе в гаманці, щоб вказати для яких конкретних валют ви хочете отримати обмінний курс, і щоб не тягнути в таблицю зайву інформацію.
lable - це параметр в якому через рисочку необхідно вказати всі пари крипти для отримання курсу. Склеюємо lable із назв валют, що перелічені в таблиці у діапазоні A3:A10.
Формула виглядає так у клітинці C15:
=LEFT(JOIN("BTC-";A3:A10);LEN(JOIN("BTC-";A3:A10))-1)
Формула використовує кілька функцій Google Таблиць для керування діапазоном значень клітинок.
Перша частина формули, JOIN("BTC-";A3:A10), поєднує текст "BTC-" зі значеннями із клітинок A3:A10, "BTC-клітинка1; BTC-клітинка2; BTC-клітинка3;..." у результаті чого утворюється об’єднаний рядок тексту:
BTCBTC-ONEBTC-DORABTC-REEFBTC-SHIBBTC-ADABTC-ETHBTC-
Функція LEFT використовується для виділення певної кількості символів із початку об’єднаного рядка, щоб обрізати зайву рисочку "-".
Скільки символів які треба залишити у рядку, визначається другим аргументом функцією LEN(JOIN("BTC-";A3:A10))-1.
Функція LEN рахує довжину рядка, і віднімає 1 від цього значення, тобто видаляє зайвий символ в кінці "-".
Кінцевим результатом буде рядок тексту, який містить «BTC-» і значення в клітинках від A3:A10, але з видаленим останнім символом:
BTCBTC-ONEBTC-DORABTC-REEFBTC-SHIBBTC-ADABTC-ETHBTC
Залишився останній параметр посилання fiat вказуємо USD.
Повністю зібране посилання має такий вигляд :
Створюємо окремий аркуш "Курс" для імпорту та перенесення даних із зовнішнього веб-сайту комбінацією функцій IMPORTDATA та TRANSPOSE. Комбінація імпортує дані з веб-сайту https://www.worldcoinindex.com/apiservice і змінює орієнтацію діапазону клітинок, з горизонтальної у вертикальну, щоб зробити їх більш читабельними та придатними для подальшого використання і обробки на аркуші.
Формула:
=TRANSPOSE(
IMPORTDATA(
"https://www.worldcoinindex.com/apiservice/ticker? key=lRXcPeoZPH6mfNlxuQGqy99JWeBD9OjMKEx&label="&'Гаманець'!C15&"&fiat=usd";"{";"EN")
)
Функція IMPORTDATA приймає один аргумент URL-адреса веб-сайту, на якому розміщені дані, це посилання що попередньо створили, для розуміння пари крипти наразі вивела текстом, щоб побачили з чого складається рядок:
"https://www.worldcoinindex.com/apiservice/ticker?key=lRXcPeoZPH6mfNlxuQGqy99JWeBD9OjMKEx&label=BTCBTC-ONEBTC-DORABTC-REEFBTC-SHIBBTC-ADABTC-ETHBTC&fiat=usd"
Параметри delimiter і locale використовуються для визначення способу розділення і форматування даних під час імпорту.
delimiter - "{" Розділювач, який використовується для розділення тексту на стовпчики або рядки. Наприклад, кома, табуляція і т.д.
locale - "EN" Локаль, яку використовується для форматування даних, таких як дати, числа і т.д. Наприклад, en_US, fr_FR і т.д.
Функція TRANSPOSE змінює орієнтацію діапазону клітинок, з горизонтальної у вертикальну.
Отримавши рядки у діапазоні A1:A9 їх потрібно розділити на елементи для цого беремо =SPLIT.
Функція SPLIT у цій формулі використовується для поділу текстового рядка на масив клітинок на основі вказаного розділювача.
Перший аргумент, A3, це текстовий рядок, який розділяється. Другим аргументом є роздільник, який являє собою комбінацію символів, які показують місця розділення тексту. У цьому випадку роздільником є: ":":"&"\"""&","&"}"&"]"&"/".
Важливо зауважити, що =SPLIT(A3;":"&"\"""&","&"}"&"]"&"/") не є типовою формулою, бо використовує набір розділювачів, для роботи функції SPLIT зазвичай потрібні два аргументи: текст і роздільник.
Ще є не зрозумілий для людини формат дати timestamp, щоб отримати "нормальну" дату і час, пишемо у стовпчику M формулу:
=(((L3/60)/60)/24)+date(1970;1;1)
Ця формула конвертує UNIX-timestamp (кількість секунд, що минули з 1970-01-01 00:00:00 UTC) у формат дати.
В першій частині формули (((L3/60)/60)/24) виконується конвертація з секунд в дні. Далі додається дата date(1970;1;1), що виконує перетворення UNIX timestamp у формат дати. В результаті отримуємо дату і час які розуміємо, і які відповідають вказаному UNIX timestamp.
Переходимо до аналітичної таблиці, щоб не згадувати по якому курсу USD, була покупка крипти витягнемо його на дату купівлі з сайту Національного банку. На аркуші "Гаманець" у діапазоні L3:L9 вносимо дати купівлі.
Імпорт даних обмінного курсу з веб-сайту Національного банку України реалізовуємо у стовпчику M:
=ROUND(SUBSTITUTE(IMPORTXML
("https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=USD&date="&TEXT(L3;"yyyymmdd");"//exchange/currency[cc=""USD""]/rate")
;".";",";);2)
Як ця конструкція працює?
Ця формула використовується для імпорту даних про обмінний курс на певну дату та валюту (у цьому випадку долар США) із сайту Національного банку України (НБУ), а потім округлення результату до двох знаків після коми.
Функція IMPORTXML використовується для імпорту даних із XML-файлу певної URL-адреси, "//exchange/currency[cc=""USD""]/rate" – це вираз XPath, який визначає розташування даних обмінного курсу в XML-файлі, просто скопіюйте.
Функція SUBSTITUTE використовується для заміни крапок на кому, щоб таблиця розуміла як числа потрібні дані.
Функція ROUND використовується для округлення результату до двох знаків після коми.
Формула у L2 дістане курс на поточну дату вказану у L1 =TODAY().
= GoogleFinance("Currency:USDUAH")
використовується для отримання поточного курсу обміну між доларом США (USD) і українською гривнею (UAH). У формулі використовується функція "GoogleFinance", яка приймає один параметр, у цьому випадку "Currency:USDUAH" і повертає поточний обмінний курс як значення.
Ціна крипти на сьогодні:
=SUBSTITUTE(VLOOKUP(A3;'курс'!$C$3:$H$9;6;0);".";",")*1
Ця формула використовує функцію VLOOKUP для пошуку значення у таблиці 'курс' у стовпці C і до стовпця H, з комірки, котра співпадає з значенням A3.
Функція повертає 6-й стовпець курс крипти параметр 0 для знаходження точного збігу.
Потім функція SUBSTITUTE замінює всі точки на коми у значенні, яке повернув VLOOKUP і потім множить її на 1 - обманюємо таблицю, щоб зрозуміла це число, а не текст. Це зроблено для перетворення цифри у числовий формат, щоб виконувати математичні дії.
Залишаються останні штрихи.
Відхилення у відсотках =(D3-C3)/C3 формула обчислює відсоток зміни між двома значеннями. Де D3 містить ціну останньої котировки, а C3 містить ціну попередньої
котировки. Результатом формули є відсоток зміни між цими двома значеннями.
Сума, $ - Купівлі = Ціна крипти на дату покупки * Кількість =B3*C3
Сума, $ - Сьогодні = Ціна крипти сьогодні * Кількість =B3*D3
Сума, грн - Купівлі = Сума, $ Купівлі * на курс долара при купівлі =F3*M3
Сума, грн - Сьогодні = Сума, $ Сьогодні * на курс долара сьогодні =G3*$L$2
$L$2 - це абсолютний адрес комірки L2 - це означає вона нікуди не зрушить при копіюванні на весь діапазон таблиці, змінюватись буде тільки G3, G4, G5 ...
Відхилення у грошах = Сума сьогодні - Сума Купівлі
Умовне форматування для E3:E9 та H3:H9, K3:K9 - це спосіб змінити колір комірки в залежності від того, яке значення в ній знаходиться.
В даному випадку, шкала кольорів - це колірна шкала яка буде застосовуватись для діапазону комірок E3:E9 та H3:H9, K3:K9
Наприклад, якщо в комірці H3 знаходиться найменше значення з діапазону H3:H9, то вона буде мати колір червоний. Якщо в комірці H9 знаходиться найбільше значення з діапазону H3:H9, то вона буде мати колір зелений.
Комірки між H3 і H9 будуть мати колір між червоним і зеленим, в залежності від їх значення.
Все, Гаманець готовий ;)