Денис Филонов

Как получить курсы валют в Google Таблицах?

Финансы

Уже давно вместо устанавливаемых офисных пакетов я использую Google Docs. Это очень удобно — доступ на любых устройствах, совместная работа, совместное обсуждение документов.

Всвязи с привязкой стоимости услуг к стабильным валютам нужно было сделать автоматический пересчёт цен в рублях. Процесс это ожидаемый, потому что для программистов нет никакого смысла работать в нестабильной валюте. Даже матёрые фрилансеры постепенно ушли с отечественных на западные биржи, освободив дорогу начинающим специалистам. Не говоря уж о  смене работы и страны пребывания.

Это нормальный общемировой процесс, французы могут ездить на работу в Германию или Россию, американцы мигрируют в другие штаты или в Европу, узбеки и таджики работают в Москве. Никакой политики в этом нет, только деньги и комфортность бытия. «За рубеж», «иммиграция» — это старые советские понятия. Какой рубеж, если в Берлин долететь можно быстрее, чем из подмосковья по пробкам в Москву приехать?

Платить за работу в EUR/USD и продавать услуги в рублях — неосмотрительно, рынок давно стал глобальным, а национальная валюта наша, к сожалению, пока полностью зависит от цен на нефть. Истинный курс рубля мы узнаем, когда арабские страны начнут раздавать нефть бесплатно. Пусть он будет 1000 рублей за доллар, но зато уже постоянный, что главное.

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

ЦБ РФ=IMPORTXML("http://www.cbr.ru/scripts/XML_daily.asp"; "//ValCurs/Valute[CharCode=""EUR""]/Value")
Биржевой= GoogleFinance("Currency:EURRUB")

Для получения курса доллара формулы такие:

ЦБ РФ=IMPORTXML("http://www.cbr.ru/scripts/XML_daily.asp"; "//ValCurs/Valute[CharCode=""USD""]/Value")
Биржевой= GoogleFinance("Currency:USDRUB")

Это поможет автоматически актуализировать цены.

Примечание: биржевой курс берётся из сервиса Google Finance и отстаёт от курса ММВБ на 20 минут. Имейте ввиду.

А если вы используете Apple Numbers, то исчерпывающую инструкцию читайте здесь.

Комментарии 36

Архив из прежней версии блога.

  1. Сашка

    Спасибо, формулы работают на ура, но при использовании любой из них, в таблице появляется уведомление: "Возможна задержка котировок до 20 минут. Информация предоставляется по принципу "как есть", исключительно для ознакомительных целей, не связанных с проведением торгов или консультированием."
    Хотелось бы её скрыть, кто-то знает как её спрятать? Гуглил - не нашёл.

    1. Денис Филоновавтор

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

  2. iPhotoN (@iPhotoN)

    Спасибо, отлично работает!

    1. Денис Филоновавтор

      На здоровье!

  3. Аноним

    Ссылки перестали работать(

    1. Денис Филоновавтор

      Всё в порядке, открываются — http://www.cbr.ru/scripts/XML_daily.asp

  4. Анна

    Здравствуйте, подскажите пожалуйста что я делаю не правильно. Вставляю вашу формулу, а мне выдает "Ошибка"

    1. Аноним

      Замените кавычки на обычные из английской раскладки и все заработает - "

      1. Аноним

        Тут движок сайта все кавычки заменяет на русские, нужны из английской раскладки как 2 апострофа вместе - но один символ

        1. Денис Филоновавтор

          Исправил.

  5. Ю

    Огромное спасибо! ?

  6. Кирилл

    = GoogleFinance("Currency:XAUUSD")

    кто подскажет почему эта пара не работает?

    1. Денис Филоновавтор

      В GoogleFinance нет цен золота, только валюты. Попробуйте найти где-нибудь источник курса в XML и импортировать по аналогии с курсом рубля CBR.

  7. Кирилл

    помогите с проблемой плиз

  8. Кирилл

    можете подсказать где плиз
    очень надо
    не могу найти сам(

    1. Денис Филоновавтор

      Кирилл, гуглите. Открытые курсы золота никто не даёт, либо оформляйте подписку у любого трейдера на API, либо пробуйте взять курс прямо из HTML, вот тут пример скрипта:
      https://1337invest.com/how-to-import-gold-price-into-google-sheet/

      Здесь тоже есть пример, но его нужно изменить, так как данные устарели:
      https://www.reddit.com/r/googlesheets/comments/3q1rxx/importing_live_exchange_rate_for_gold/

      Справка по функции импорта:
      https://support.google.com/docs/answer/3093339?hl=ru

  9. Анастасия

    Работает! Спасибо большое

  10. Аноним

    Добрый день.
    Может быть кто нибудь подскажет как получить курс доллара с PayPal, он отличается от курса ЦБ.

  11. Денис Филоновавтор

    Добрый день! У PayPal нет курса конверсии в API.

  12. max

    а как вывести данные курса доллара по дню, которые соответствуют курсу цб

  13. Аноним

    https://myfin.by/currency/cb-rf-archive/2020-09 на этом сайте есть по дням курс цб, каждый день обновятся, помогите пожалуйста вывести эти данные
    в гугл табл

    1. Денис Филоновавтор

      Посмотрите документацию центробанка, там есть функция динамики курса и примеры макросов, правда, для XLS. Не уверен, что можно обойтись только средствами гугл таблиц, но вдруг поможет. https://www.cbr.ru/development/DWS/

  14. max

    получилось вывести с сайта, про который писал, а не с цб
    =IMPORTXML("https://myfin.by/currency/cb-rf-archive/2020-02";"//table[@class='default-table cbrfArchive']/tbody/tr")

  15. Евгений Федотов

    Супер, благодарю! =)

  16. Аноним

    добрый день, подскажите пожалуйста как установить курс гривна/рубль по курсу продажи в приватбанке на украине?

    1. Денис Филоновавтор

      Добрый вечер! API у каждого своё, думаю, Вам лучше в ПриватБанк написать.

  17. Вета

    Добрый день!
    Вопрос - а как быть, если код валюты нужно выбрать из отдельной ячейки, к примеру, из выпадающего списка? Как изменится формула?

    1. Денис Филоновавтор

      Добрый день! Добавьте оператор Switch — он будет выбирать валюту в зависимости от значения, выбранного в выпадающем списке. Если USD, выбирать из первой ячейки, если EUR из второй и так далее. Вот тут описано, как он работает https://blog.sheetgo.com/google-sheets-formulas/switch-formula-google-sheets/

  18. Андрей

    Добрый день!
    Подскажите, пожалуйста, можно ли задать формулой минимальное или максимальное значение валюты в определенный день?

  19. Denis Filonovавтор

    Андрей, этой формулой нет. ЦБР и Google не дают таких данных. У ЦБР официальный курс на день. Тут скорее нужно на бирже какой-нибудь брать курс.

  20. Андрей

    Да, понимаю, но надеялся, вдруг, можно как-то с биржи подтянуть минимальное значение валюты или актива в клетку, не выгружая при этом все данные.

  21. Павел

    Здравствуйте, есть ли подобная формула для курса биткоин (BTC)? Спасибо.

  22. Юлия Жиганова

    Добрый день. Подскажите, пожалуйста, можно ли сделать , чтоб эта формула GoogleFinance("Currency:EURRUB") считала на определенную дату?

    1. Denis Filonovавтор

      Юлия, добрый день! Эти источники выдают курс валют только на текущий день.

  23. Аноним

    Добрый день. Не подскажите где найти XLM с криптовалютой.

    1. Denis Filonovавтор

      Добрый день! Они есть, но данные в JSON отдают. Я использовал вот этого поставщика (но не в таблицах, а в приложении), у него есть бесплатный тариф https://min-api.cryptocompare.com/documentation