Как вставить курс доллара в Google docs

Содержание

Основная задача блога — стать стартовой платформой для начинающих разработчиков, здесь не только буду писать свои статьи, но также буду выкладывать полезные ссылки которые помогут разобраться в разных вопросах. Будут затронуты темы: Ruby on Rails, PHP, MySQl, CodeIgniter, JQuery.

понедельник, 12 марта 2012 г.

Вставка текущего курса валют USD/UAH в ячейку таблицы google docs

Google Docs Spreadsheets очень удобный онлайн инструмент для ведения бухгалтерии. Допустим, что такая бухгалтерия ведеться в долларах США, но в конечном итоге надо получить все суммы в гривнах, учитывая текущий курс валют.

Как выход — в ячейку вбить текущий курс и отталкиватся от него. Минус такого подхода состоит в том, что постоянно придется корректировать этот самый текущий курс (как минимум раз в день) .

Есть удобные онлайн сервисы, которые постоянно показывают курсы валют. Почему бы и нам их не использовать в своей таблице?

На самом деле, тут все решабельно. В качестве такого онлайн сервиса, будет использовать ся Yahoo Finance. Страница, которая предоставляет нужный тип информации (USD в UAH) будет такая: http://finance.yahoo.com/q?s=USDUAH=X.

Курс доллара по дням в Google таблицах. Помощь по гугл таблицам

Остается только выбрать нужное значение со страницы и использовать для себя:

Вставим такую формулу в нужную ячейку таблицы — и вся задача.

Теперь немного детальнее пройдемся по формуле:

VALUE — конвертирует текст в чисельное значение

SUBSTITUTE — функция, кторая заменяет одно значение в строке на другое. В нашем примере, мы сначала заменяем * на пустое значение (так как резуьтат выгребается в виде *7.92*), после чего, заменим точку на запятую — так как разделитель дробной части у меня запятая.

INDEX — получаем элемент массива (ячейку таблицы со значением курса валют)

ImportHTML — по заданому URL выгребаем контент, ищем в нем 1 таблицу.

46 комментариев:

Странное дело — почему то не работает формула.. Ответить Удалить

Как настроить устройство Гугл на новом телефоне

Просто сейчас в yahoo, в ячейке не одно число курса, а диапазон: 8,027 — 8,3. Они немного поменяли там верстку и логику отображения

Потому немножко усовершенствуем формулу: добавим регулярку, которая возьмет левую границу диапазона:
=value(RegExExtract(SUBSTITUTE((SUBSTITUTE(Index(ImportHTML(«http://finance.yahoo.com/q?s=USDUAH=X»;»table»;3); 1;2);»*»;»»));».»;»,»);»[0-9,]+»))

Регулярка в гуглдоке работает так: RegExExtract(текст; регулярное_выражение)

Если хотите среднее значение то надо либо пошаманить с формулами либо поискать другой ресурс с курсом валют — где есть не диапазон, а точное значение курса 😉 Удалить

не пойму, как вставить значение отсюда http://www.google.com/finance?q=usdrub
Можно попросить объяснить — не могу сам дойти:) Ответить Удалить

Если вы хотите достать курс рубля который там сверху указан большим шрифтом, то вам нужно:
1) с помощью функции ImportXML и условия XPASS найти нужный контейнер на странице (предварительно анализируем с помощью firebug структуру HTML)

Курсы валют в Google Таблице (GoogleFinance)


2) так как в роли разделителя десятичной части там используется точка вместо запятой то, соответственно, нужно заменить точку на запятую функцией SUBSTITUTE
3) теперь из строки вида «29,5792 RUB» ругулярным выражением достаем число
4) функция value(str) приводит текст к числовому значению с плавающей точкой
5) можно использовать ячейкув ваших формулах

Вот круто:) Спасибо! Удалить

Сергей, подскажите пожалуйста, как выглядит формула, если мне нужна например котировка Apple Inc.(NASDAQ:AAPL)
Понимаю, что вместо usdrub нужно вписать AAPL, но после этого формула перестает работать.
Сам не программист, поэтому не разберусь.

А можете помочь с Яндекса курс вытащить (там он ЦБ РФ) http://news.yandex.ru/quotes/1.html. Сама не могу — не понимаю в коде ничего((( Ответить Удалить

Курс Google finance:
$ =round(GoogleFinance(«CURRENCY:USDRUB» ; «average»);2)
€ =round(GoogleFinance(«CURRENCY:EURRUB» ; «average»);2)

Коды валют центробанка http://www.cbr.ru/scripts/Root.asp?Prtid=SXML

Подскажите пожалуйста, нужно вытащить символ с yahoo в GDocs со знаком ^, как это сделать? Ответить Удалить

с каким знаком? «^»? Удалить

Подскажите пожалуйста, как вытащить отсюда — http://www.google.com/finance?q=NASDAQ%3AAAPLНО» Сергей.
Если вам не сложно, выделите пожалуйста жирным шрифтом, что нужно менять в этой формуле, что бы работали еще и трехзначные котировки, или двухзначные, или восьмизначные и т.д.
Например такая котировка имеет пять знаков и она работает: 561.70
А если котировка имеет три знака, то уже не работает: 9.06
http://www.google.com/finance?q=NASDAQ%3ADELLei=MSiyUKDrOsWrwAO3cw
Удаление запятой функцией SUBSTITUTE не помогает, т.к. удаляются все запятые.

Можно написать и регулярное выражение, но так проще для понимания не-программистам Удалить

Если с предыдущим вопросом разобралось, то выложите свое решение: кому-то пригодится, я не всегда могу сразу отвечать на вопрос, так как мало свободного времени — потому часто могу отписать только через день-два Удалить

Сергей спасибо за ответы.
Понял в чем ошибка. Я делал наоборот, сперва менял запятую на точку, а потом убирал запятые )))
Предыдущий вопрос снят по той причине, что котировки поши. Видать я неверно копировал данные из адресной строки.

Еще раз спасибо за помощь. Удалить

Пожалуйста 🙂 Удалить

Случайно не в курсе, как вытянуть код всего портфолио для вставки графика на сайт.
Например вот этого — http://www.google.com/finance/portfolio?action=viewei=bIu0UIDrBqmYwQOoiAE
Полистал ваш блог, ответ не нашел. Удалить

Показатели оптимизации аккаунта Google

у меня в гугл аккаунте нет портфолио 🙂 потому посмотреть немогу. Если на странице есть данные то их все можно вытянуть в отдельные ячейки вашей таблицы как в примерах выше, а уже по ним построить график. Но нельзя злоупотреблять формулами, так как придеться для каждой ячейки фактически слать запрос на сервер.
ImportXML(«http://. ) это уже запрос, на каждый запрос + парсинг + выполнение формулы будут задержки, потому желательно запросить всю страницу за один раз. Например весь нужный кусок страницы запихнуть в скрытую ячейку и парсить уже всем из нее данные.

Но, для сложных задач правильнее всего использовать скрипты, которые поддурживают гугл таблицы, стартовая дока https://developers.google.com/apps-script/your_first_script

Оно похоже на VisualBasic for Microsoft Office, принцип тот же, только язык другой в основе: JavaScript

Но придется читать доки и учится писать на нем под таблицы 🙂
Документация есть
Удалить

А не подскажете, с этого сайта http://www.bsb.by/ вообще можно курсы спарсить в гугл док? А то мне именно обменные курсы надо, но что-то самому не получилось.
Буду очень благодарен за помощь или совет.
Спасибо!
Никита Ответить Удалить

Конечно можно, если верстка сайта не меняется. Нужно найти контейнер и внутри него найти и распарсить таблицу с курсами Удалить

Источник: interestabout.blogspot.com

Получение курсов валют в Google Sheets

Часто спрашивают в чате, как получить курсы валют в Google Sheets? Разберём несколько подходов на простых примерах.

⚠️ Внимание! Увага! Назар аударыңыз! 注意!توجه! ⚠️

На текущий момент данные ЦБ РФ и Национального банка Республики Беларусь описанным ниже методом получить не удаётся. Предположительно, они закрылись от гугловских IP (с которых идут запросы, когда вы пишите формулы импорта), а, может, и не только от гугловских, но от всего Запада (из России всё доступно).

Почему и зачем они это сделали, не очень понятно. Может, мы с вами слишком часто курсы валют запрашивали? А, может, не работает совсем по другой причине.

Получить данные пробовали и скриптом, результат такой же: не получилось, вылетело по timeout или с бессмысленными капризами «ой, нас DDoS’ят. памагити. «.

Проблемы эти наблюдаются с 27.03.2022 (добрые люди обратили наше внимание) и на сегодняшний день (29.03.2023) никуда они не делись.

⚠️ Внимание! Увага! Назар аударыңыз! 注意!توجه! ⚠️

Google Finance

Функция GOOGLEFINANCE() (документация) берёт данные с Google Finance, где, например, можно посмотреть курс доллара в рублях по ссылке:

Или наоборот, курс рубля в долларах:

Данные, которые возвращает GOOGLEFINANCE() , обновляются примерно каждые 20 минут.

Хоть данные и не с потолка берутся, Google советует к ним относиться с аккуратностью, носят чисто информационных характер, не использовать для торговли, не считать рекомендациями и пр.

Получение текущего курса USD в рублях:

=GOOGLEFINANCE(«CURRENCY:USDRUB»)
73,4836

Получение курса, который был неделю назад:

=GOOGLEFINANCE(«CURRENCY:USDRUB»; «price»; TODAY() — 7)
| Date | Close | |———————|———| | 18.05.2021 23:58:00 | 73,6974 |

Получение курсов за прошлые 7 дней:

=GOOGLEFINANCE(«CURRENCY:USDRUB»; «price»; TODAY() — 7; 7)
| Date | Close | |———————|———| | 18.05.2021 23:58:00 | 73,6974 | | 19.05.2021 23:58:00 | 73,7663 | | 20.05.2021 23:58:00 | 73,4719 | | 21.05.2021 23:58:00 | 73,641 | | 22.05.2021 23:58:00 | 73,6226 | | 23.05.2021 23:58:00 | 73,6478 | | 24.05.2021 23:58:00 | 73,4738 |

Как синхронизировать трелло с Гугл календарем

В таблице есть примеры вызовов GOOGLEFINANCE() , которые мне непонятны. Если знаете, что они возвращают, напишите в чате.

Официальные курсы ЦБ РФ, НБУ и НБ РБ

Посмотреть курсы валют в российских рублях на заданную дату, которые устанавливает ЦБ РФ, можно на сайте. Например, по ссылке, которую легко составить в Google Sheets, можно получить курсы валют на 25.05.2021:

Данные со страницы можно вытащить с помощью IMPORTHTML() , но мы так делать не будем — есть метод получше.

ЦБ РФ предоставляет данные в виде XML (описание). Они менее нагружены, чем HTML страницы, ничего лишнего — будут быстрее загружаться, легче будет разбирать.

Тут нам поможет функция IMPORTXML() (документация) и небольшие знания XPath (tutorial).

ЦБ РФ — Справочник по валютам

Тут у ЦБ РФ справочник по валютам:

ЦБ РФ — Курсы валют на заданную дату

По этой ссылке можно получить курсы валют на заданную дату (для другой даты достаточно соответственно поменять конце строки):

Обратите внимание на поле Nominal. Чаще всего это 1 (например, 73,5266 Российских рублей за 1 доллар США), но бывает больше (например, 17,1809 Российских рублей за 100 Казахстанских тенге). Для получения курса за 1 единицу валюты, значение элемента надо разделить на значение элемента .

Отсюда формула. Первая колонка — элемент (полученный курс надо будет где-то использовать, найти его сможем, например, по CharCode), вторая — курс.

В ячейке A6 мы подготовим URL:

=»http://www.cbr.ru/scripts/XML_daily.asp?date_req=» 5; 25); «dd/mm/yyyy»)

ЦБ РФ — Значения курса валюты за период

По этой ссылке можно получить курс доллара США за предыдущие 7 дней:

С датами, думаю, всё понятно. Только стоит помнить, что курс на воскресенье и понедельник (они отсутствуют в выдаче) равен субботнему курсу, он устанавливается в пятницу и на выходных не меняется.

Параметр в ссылке VAL_NM_RQ — это внутренний ID валюты ЦБ РФ, его можно взять в справочнике (см. выше).

В ячейке A6 мы подготовим URL:

=»https://www.cbr.ru/scripts/XML_dynamic.asp?» date_req1=» «dd/mm/yyyy») «dd/mm/yyyy»)

Следующая формула выведет дату курса и его значение в двух колонках:

НБУ — Курсы валют на заданную дату

Аналогично ЦБ РФ, не будем разбираться с HTML, так как НБУ предоставляет (описание) различные данные в формате XML или JSON.

Нас интересует первый раздел с курсами валют.

По следующей ссылке можно получить курс выбранной валюты (ISO Code) на указанную дату (25.05.2021):

Если убрать из запроса параметр valcode , то получим курсы всех известных НБУ валют на 25.05.2021:

В ячейке A6 мы подготовим URL:

=»https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?date=» 5; 25); «yyyymmdd»)

Следующая формула выведет нам две колонки: код валюты и курс.

Не забываем менять точку на запятую ( SUBSTITUTE(. ; «.»; «,») ) и преобразовывать в число ( —(. ) ).

Если убрать из ссылки параметр date , получим текущие курсы валют.

НБУ — Значения курса валюты за период

Я не увидел в документации НБУ ссылки, по которой можно получить данные о динамике курса выбранной валюты за указанный период. Поделитесь в чате, если знаете.

Google map maker что это

НБ РБ — Справочник по валютам

Всё очень похоже на ЦБ РФ.

Описание XML тут (сильно лучше ЦБшного):

Тут у ЦБ РФ справочник по валютам:

НБ РБ — Курсы валют на заданную дату

По этой ссылке можно получить курсы валют на заданную дату (для другой даты достаточно соответственно поменять конце строки):

Обратите внимание на элемент . Чаще всего это 1 (например, 2.5092 Белорусских рубля за 1 доллар США), но бывает больше (например, 2.3043 Белорусских рубля за 100 Японских йен). Для получения курса за 1 единицу валюты, значение элемента надо разделить на значение элемента .

Отсюда формула. Первая колонка — элемент (полученный курс надо будет где-то использовать, найти его сможем, например, по CharCode), вторая — курс.

В ячейке A6 мы подготовим URL:

=»https://www.nbrb.by/services/xmlexrates.aspx?ondate=» 5; 25); «mm/dd/yyyy»)

НБ РБ — Значения курса валюты за период

По этой ссылке можно получить курс доллара США за предыдущие 7 дней:

Параметр в ссылке curid — это внутренний ID валюты НБ РБ, его можно взять в справочнике (см. выше, первый столбец).

В ячейке A6 мы подготовим URL:

=»https://www.nbrb.by/services/xmlexratesdyn.aspx?» curid=145″ «mm/dd/yyyy») «mm/dd/yyyy»)

Следующая формула выведет дату курса и его значение в двух колонках:

XE.com — Курсы валют на заданную дату

XE.com — один из популярных ресурсов, где тоже можно посмотреть курсы валют (и исторические данные доступны без javascript, так что мы их сможем легко импортировать в таблицу). У них есть платное API, но можно импортировать HTML страницу с данными.

Например, курс доллара США в других валютах на 25.05.2021:

Во второй половине страницы таблица с данными, которая нас интересует:

В ячейке A6 мы подготовим URL:

=»https://www.xe.com/currencytables/?from=USD 5; 25); «yyyy-mm-dd»)

Достанем первую таблицу с данными с помощью функции IMPORTHTML() (документация):

=IMPORTHTML(A6; «table»; 1)

На XE.com можно узнать, например, сайт центрального банка для какой-нибудь валюты (может, у них тоже есть ссылки с XML?):

Существует множество других источников данных о курсах валют. Для них можно самостоятельно попробовать адаптировать то, что написано выше.

Cсылки

Функции Google Sheets

  • Справочник по функциям Google Sheets
  • Описание GOOGLEFINANCE
  • Описание IMPORTXML
  • Описание IMPORTHTML

XPath

В интернете полно информации об использовании XPath. Больше экспериментируйте, чтобы разобраться.

  • Туториал от W3C — XPath Tutorial (англ.)
  • Есть достаточно материалов на русском языке: поиск xpath в яндексе
  • Полезно посмотреть, что есть на Stack Overflow с тегом xpath

Источники данных по курсам валют

  • Буквенные коды валют — Wikipedia — ISO 4217 — Active codes
  • Google Finance
  • ЦБ РФ (Россия) — База данных по курсам валют
  • ЦБ РФ (Россия) — Получение данных, используя XML
  • НБУ (Украина) — Фінансові ринки
  • НБУ (Украина) — Офіційний курс гривні щодо іноземних валют
  • НБУ (Украина) — API для розробників (справочник ссылок для получения данных в формате XML или JSON)
  • НБ РБ (Белоруссия) — Официальный курс белорусского рубля
  • НБ РБ (Белоруссия) — Получение данных, используя XML
  • XE.com — Historical rate tables
Как в гугле сделать рассылку

Источник: telegra.ph

Конвертация валюты в Google Sheets

Часто бывает, что нам нужно привязать цену к определенной валюте. При этом товар может продаваться в различных валютах. Google Sheets содержит чрезвычайно удобный инструмент для конвертации валюты, которого вы не найдете в других программах.

Я говорю о функции GOOGLEFINANCE. Он извлекает текущую или архивную финансовую информацию из Google Finance. И сегодня мы вместе рассмотрим эту функцию.

Как использовать GOOGLEFINANCE для получения текущих курсов обмена валют

Несмотря на то, что GOOGLEFINANCE может многое, нас интересует его способность получать курсы обмена валют. Синтаксис функции следующий:

Получите текущие обменные курсы с GOOGLEFINANCE.

Примечание. Аргументы функции ВАЛЮТА: должны быть текстовыми строками.

Например, чтобы получить текущий обменный курс доллара США к евро, вы можете использовать следующую формулу:

То же самое можно применить для конвертации $ в £:

И доллар США к японской иене:

Используйте ссылки на ячейки, чтобы получить обменный курс.

Чтобы конвертировать валюты было еще проще, просто замените текст в формулах ссылками на ячейки:

Здесь B3 содержит формулу, которая объединяет два названия валюты в A1 и A3:

Кончик. Вы найдете полный список всех кодов валют, включая несколько криптовалют. ниже.

GOOGLEFINANCE для получения курсов валют за любой период времени

Мы можем использовать функцию GOOGLEFINANCE, чтобы увидеть, как изменились курсы валют за указанный период времени или за последние N дней.

Курсы валют за определенный период времени

Чтобы получить обменные курсы за некоторый период времени, вам нужно расширить функцию GOOGLEFINANCE дополнительными необязательными аргументами:

GOOGLEFINANCE(«ВАЛЮТА: «, [attribute], [start_date], [num_days|end_date], [interval])

  • атрибут (необязательно) — используйте «цена», чтобы получить курсы обмена валют в режиме реального времени (с небольшой задержкой до 20 минут) Кончик. См. полный список доступных атрибутов здесь.
  • дата_начала, дата_окончания (необязательно) — интересующий вас период. Используйте функцию DATE в этих аргументах.
  • интервал (необязательно) — как часто вы хотите получать данные. Это может быть «ЕЖЕДНЕВНО» или «ЕЖЕНЕДЕЛЬНО», или цифрами — 1 — ежедневно, 7 — еженедельно.

Вот пример такой формулы:

=GOOGLEFINANCE(«ВАЛЮТА:USDEUR», «цена», ДАТА(2017,9,1), ДАТА(2017,9,10), «ЕЖЕДНЕВНО»)

Текущие ежедневные курсы обмена валюты.

В итоге у нас есть таблица с окончательными ставками на конец дня.

Вы можете использовать ссылки на ячейки вместо дат, чтобы упростить формулу и настроить ее в пару кликов:

=GOOGLEFINANCE(«ВАЛЮТА:USDEUR», «цена», A1, A1+5, «ЕЖЕДНЕВНО»)

Ссылки на ячейки вместо дат в GOOGLEFINANCE.

A1 — это дата начала, и мы прибавляем к ней необходимое количество дней:

Курсы валют за последние N дней

Мы также можем использовать функцию GOOGLEFINANCE, чтобы получить обменные курсы за последние N дней (10 дней в формуле ниже):

Курсы валют за последние 10 дней.

=GOOGLEFINANCE(«ВАЛЮТА:USDEUR»,»цена»,СЕГОДНЯ()-10,СЕГОДНЯ())

Получите обменные курсы проще, используя ссылки на ячейки

Еще один пример GOOGLEFINANCE в Google Sheets иллюстрирует, как вы можете использовать ссылки на ячейки во всех аргументах функции.

Давайте узнаем обменные курсы евро к доллару США за 7-дневный период:

GOOGLEFINANCE со ссылками на ячейки в каждом аргументе.

=GOOGLEFINANCE(СЦЕПИТЬ(«ВАЛЮТА:», C2, B2), «цена», ДАТА(год($A2), месяц($A2), день($A2)), ДАТА(год($A2), месяц( $A2), день($A2)+7), «ЕЖЕДНЕВНО»)

Исходные данные — коды валют и дата начала — находятся в формате A2:C2.

Чтобы объединить несколько переменных в одну, мы используем функцию СЦЕПИТЬ вместо традиционного амперсанда (https://snaptik.ru/konvertacziya-valyuty-v-google-sheets/» target=»_blank»]snaptik.ru[/mask_link]

Рейтинг
Загрузка ...