Как в Excel получить и обновлять курс валют на сегодня: полное руководство

Работа с курсами валют в Microsoft Excel — одна из самых востребованных задач среди финансовых аналитиков, бухгалтеров и предпринимателей. Однако ручной ввод данных каждый день отнимает время и чреват ошибками. К счастью, Excel предлагает несколько способов автоматизации — от простых формул до подключения к внешним API. В этой статье вы узнаете, как настроить автоматическое обновление курсов валют прямо в вашей таблице, включая доллар, евро, юань и другие валюты, с учётом актуальных данных на сегодня.

Мы рассмотрим методы разной сложности: от ручного импорта с сайта Центробанка РФ до использования Power Query и VBA-скриптов. Вы сможете выбрать оптимальный вариант в зависимости от ваших навыков и требований к частоте обновления. А для тех, кто работает с международными валютами, мы добавили инструкции по подключению к European Central Bank (ECB) и Alpha Vantage.

1. Ручной ввод курса валют: быстрый способ для единичных задач

Если вам нужно однократно внести актуальный курс валюты (например, для расчёта стоимости импортного товара), самый простой способ — скопировать данные с официального источника. Этот метод не требует навыков работы с формулами, но подходит только для разовых задач.

Где взять актуальные курсы:

Как вставить курс в Excel:

  1. Откройте сайт с актуальными курсами (например, страницу ЦБ РФ).
  2. Найдите нужную валюту (например, USD или EUR) и скопируйте значение курса (например, 92,4567).
  3. В Excel выделите ячейку, куда хотите вставить курс (например, B2).
  4. Вставьте скопированное значение (Ctrl+V).
  5. При необходимости отформатируйте ячейку как финансовый формат (выделите ячейку → Главная → Формат → Финансовый).
⚠️ Внимание: При ручном вводе курса не забывайте указывать дату актуальности данных. Добавьте рядом с курсом ячейку с формулой =ТДАТА(), чтобы отслеживать, когда данные были внесены.
📊 Как часто вам нужно обновлять курсы валют в Excel?
Ежедневно
Раз в неделю
Раз в месяц
Реже
Не обновляю

2. Использование функции WEBSERVICE и FILTERXML для автоматического обновления

Если вы работаете в Excel 365 или Excel 2021, у вас есть доступ к функции WEBSERVICE, которая позволяет подтягивать данные прямо с веб-страниц. Этот метод идеален для тех, кто хочет получать курсы валют в режиме реального времени без использования макросов.

Для Центробанка РФ можно использовать следующий подход:

  1. Создайте новую книгу Excel.
  2. В ячейке A1 введите название валюты (например, USD или EUR).
  3. В ячейке B1 введите формулу:
    =FILTERXML(WEBSERVICE("https://www.cbr.ru/scripts/XML_daily.asp"), "//Valute[CharCode='"&A1&"']/Value")

    Эта формула подтянет курс валюты, указанной в A1, с сайта ЦБ РФ.

  4. Чтобы заменить запятую на точку (если Excel не распознаёт число), добавьте функцию ЗАМЕНИТЬ:
    =--ЗАМЕНИТЬ(FILTERXML(WEBSERVICE("https://www.cbr.ru/scripts/XML_daily.asp"), "//Valute[CharCode='"&A1&"']/Value"); ","; ".")

Преимущества метода:

  • 🔄 Автоматическое обновление при пересчёте листа (F9).
  • 📊 Поддержка любых валют, которые есть на сайте ЦБ.
  • ⚡ Не требует установки надстроек или макросов.
⚠️ Внимание: Функция WEBSERVICE работает только в Excel 365 и Excel 2021. В более ранних версиях (2019, 2016) она недоступна. Также некоторые корпоративные сети могут блокировать доступ к внешним ресурсам.

3. Импорт курсов валют через Power Query (самый надёжный способ)

Power Query — это встроенный инструмент Excel для импорта и преобразования данных. С его помощью можно настроить автоматическое обновление курсов валют из XML или JSON-источников, включая ЦБ РФ, ECB и другие финансовые сервисы.

Инструкция по настройке импорта с сайта ЦБ РФ:

  1. Перейдите на вкладку ДанныеПолучить данныеИз других источниковИз веб.
  2. В поле URL введите адрес XML-файла ЦБ РФ:
    https://www.cbr.ru/scripts/XML_daily.asp
  3. Нажмите OK. Откроется окно Power Query с данными в формате XML.
  4. В списке таблиц выберите Valute (это список всех валют) и нажмите Преобразовать данные.
  5. Удалите ненужные столбцы, оставив только:
    • CharCode (код валюты, например, USD)
    • Name (название валюты)
    • Value (курс)
  • Замените запятые на точки в столбце Value:
    • Выделите столбец Value.
    • Перейдите на вкладку ПреобразованиеЗаменить значения.
    • В поле Найти введите ,, в поле Заменить на..
    • Нажмите Закрыть и загрузить. Данные появятся на новом листе Excel.

    Чтобы обновлять курсы в один клик:

    • Выделите любую ячейку в импортированной таблице.
    • Перейдите на вкладку ДанныеОбновить все (или нажмите Ctrl+Alt+F5).

    Указать корректный URL XML-файла ЦБ РФ|

    Оставить только нужные столбцы (CharCode, Name, Value)|

    Заменить запятые на точки в столбце Value|

    Загрузить данные на новый лист|

    Настроить автоматическое обновление (по желанию)

    -->

    Источник данных Формат URL для Power Query Обновление
    Центробанк РФ XML https://www.cbr.ru/scripts/XML_daily.asp Ручное или по расписанию
    European Central Bank (ECB) XML https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml Автоматическое
    Alpha Vantage (API) JSON https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=RUB&apikey=YOUR_API_KEY Требует API-ключ

    4. Подключение к API внешних сервисов (для продвинутых пользователей)

    Если вам нужны курсы валют в реальном времени или данные по экзотическим валютам, можно подключиться к API внешних сервисов, таких как Alpha Vantage, ExchangeRate-API или Open Exchange Rates. Этот метод требует регистрации и получения API-ключа, но даёт максимальную гибкость.

    Пример подключения к Alpha Vantage:

    1. Зарегистрируйтесь на Alpha Vantage и получите бесплатный API-ключ.
    2. В Excel перейдите на вкладку ДанныеПолучить данныеИз других источниковИз веб.
    3. Введите URL вида:
      https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=RUB&apikey=YOUR_API_KEY

      (замените YOUR_API_KEY на ваш ключ).

    4. В окне Power Query преобразуйте JSON-ответ в таблицу, выбрав нужные поля (например, Exchange Rate).
    5. Загрузите данные на лист.

    Преимущества API:

    • 🕒 Данные в реальном времени (обновляются каждые 60 секунд).
    • 🌐 Поддержка 160+ валют, включая криптовалюты.
    • 📅 Возможность получать исторические данные за любой период.
    ⚠️ Внимание: Бесплатные тарифы API обычно имеют ограничения по количеству запросов (например, 5 запросов в минуту или 500 в день). Для регулярного использования может потребоваться платный тариф.
    Как обойти ограничения бесплатных API?

    Многие сервисы (например, Alpha Vantage) предлагают бесплатные ключи с ограничениями. Чтобы не превышать лимиты:

    1. Кэшируйте данные: сохраняйте курсы валют в Excel и обновляйте их 1 раз в час, а не каждую минуту.

    2. Используйте несколько бесплатных API поочерёдно (например, Alpha Vantage для USD/RUB и ECB для EUR/RUB).

    3. Настройте обновление по расписанию (например, только в рабочие часы).

    4. Для критичных задач рассмотрите платные тарифы (стоимость начинается от $5/месяц).

    5. Автоматизация с помощью VBA: скрипт для обновления курсов

    Если вы готовы использовать макросы, VBA позволит полностью автоматизировать загрузку курсов валют. Этот метод подходит для пользователей, которым нужно обновлять данные по расписанию или интегрировать их в сложные финансовые модели.

    Пример скрипта для загрузки курсов с сайта ЦБ РФ:

    1. Нажмите Alt+F11, чтобы открыть редактор VBA.
    2. Вставьте новый модуль (Insert → Module).
    3. Скопируйте следующий код:
      Sub UpdateCurrencyRates()
      

      Dim xmlHttp As Object

      Dim xmlDoc As Object

      Dim url As String

      Dim rate As String

      Dim ws As Worksheet

      ' Адрес XML-файла ЦБ РФ

      url = "https://www.cbr.ru/scripts/XML_daily.asp"

      ' Создаём объекты для работы с HTTP и XML

      Set xmlHttp = CreateObject("MSXML2.XMLHTTP")

      Set xmlDoc = CreateObject("MSXML2.DOMDocument")

      ' Загружаем данные

      xmlHttp.Open "GET", url, False

      xmlHttp.send

      xmlDoc.LoadXML xmlHttp.responseText

      ' Определяем лист для вывода данных

      Set ws = ThisWorkbook.Sheets("Курсы валют") ' Измените имя листа при необходимости

      ' Очищаем старые данные (кроме заголовков)

      ws.Range("A2:B100").ClearContents

      ' Парсим XML и записываем курсы в Excel

      Dim i As Integer

      i = 2

      For Each node In xmlDoc.SelectNodes("//Valute")

      ws.Cells(i, 1).Value = node.SelectSingleNode("CharCode").Text

      ws.Cells(i, 2).Value = Replace(node.SelectSingleNode("Value").Text, ",", ".")

      i = i + 1

      Next node

      ' Форматируем данные как числа

      ws.Range("B2:B" & i).NumberFormat = "0.0000"

      MsgBox "Курсы валют успешно обновлены!", vbInformation

      End Sub

    4. Закройте редактор VBA.
    5. Запустите макрос (Alt+F8 → выберите UpdateCurrencyRatesВыполнить).

    Чтобы макрос работал автоматически:

    • 🕰️ Настройте автоматическое выполнение по времени:
      Application.OnTime TimeValue("09:00:00"), "UpdateCurrencyRates"

      (этот код нужно добавить в модуль и запустить один раз; макрос будет выполняться ежедневно в 9:00).

    • 📂 Сохраните файл как Excel Macro-Enabled Workbook (.xlsm).

    6. Использование надстройки "Стоки" для биржевых данных

    Если вы работаете в Excel 365, у вас есть доступ к встроенной надстройке "Стоки" (Stocks), которая позволяет подтягивать биржевые данные, включая курсы валют, акций и криптовалют. Этот метод проще, чем работа с API, но ограничен набором доступных валют.

    Как подключить надстройку:

    1. Перейдите на вкладку ВставкаНадстройки.
    2. В поисковой строке введите Стоки и нажмите Добавить.
    3. После установки на вкладке Данные появится кнопка Стоки.

    Как добавить курс валюты:

    1. Выделите ячейку, куда хотите вставить курс (например, A1).
    2. Нажмите Данные → Стоки.
    3. В поисковой строке введите название валюты (например, USD/RUB или EUR/RUB).
    4. Выберите нужный инструмент из списка и нажмите Добавить.

    Преимущества надстройки "Стоки":

    • 🔄 Автоматическое обновление каждые 15–30 минут.
    • 📈 Поддержка не только валют, но и акций, индексов, криптовалют.
    • 📊 Возможность выводить исторические данные за любой период.
    ⚠️ Внимание: Надстройка "Стоки" доступна только в Excel 365 и требует подключения к интернету. В некоторых регионах список доступных валют может отличаться.

    7. Создание динамической таблицы с историей курсов

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

    Инструкция по настройке:

    1. Создайте таблицу с заголовками:
      Дата USD EUR CNY
      =ТДАТА() (курс доллара) (курс евро) (курс юаня)
    2. Настройте автоматическое обновление курсов одним из способов, описанных выше (например, через Power Query или VBA).
    3. Добавьте кнопку для сохранения текущих курсов в историю:
      • Создайте макрос, который копирует текущие курсы в новую строку таблицы.
      • Привяжите макрос к кнопке на листе (Вставка → Кнопка).
  • Используйте сводные таблицы или графики для визуализации изменений курсов.
  • Пример формулы для расчёта изменения курса за день:

    =ЕСЛИОШИБКА((B2-B3)/B3; "")

    (где B2 — курс сегодня, B3 — курс вчера).

    Для чего нужна история курсов:

    • 📉 Анализ трендов и прогнозирование изменений.
    • 💰 Корректировка цен в договорах, привязанных к валюте.
    • 📑 Формирование отчётности для налоговых органов.

    8. Решение распространённых ошибок при работе с курсами валют

    При автоматическом обновлении курсов валют в Excel пользователи часто сталкиваются с типичными проблемами. Вот как их решить:

    Ошибка Причина Решение
    #ЗНАЧ! в формуле WEBSERVICE Блокировка внешних запросов Проверьте настройки брандмауэра или антивируса. Включите динамические массивы в параметрах Excel.
    Курсы не обновляются в Power Query Кэширование данных В настройках запроса отключите кэш или нажмите Обновить все (Ctrl+Alt+F5).
    Макрос не работает Отключены макросы Включите макросы в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов → Включить все макросы.
    API возвращает ошибку 401 Неверный или просроченный API-ключ Проверьте ключ на сайте сервиса. При необходимости получите новый.
    Данные в формате текста, а не числа Разделитель дробной части (запятая вместо точки) Используйте функцию ЗАМЕНИТЬ или измените региональные настройки Windows.

    Если ни один из методов не работает:

    • 🔌 Проверьте подключение к интернету.
    • 🔄 Обновите Excel до последней версии (особенно актуально для WEBSERVICE и надстройки "Стоки").
    • 📋 Создайте резервную копию файла перед экспериментами с макросами или Power Query.

    FAQ: Частые вопросы по курсам валют в Excel

    Можно ли получить курс биткоина или других криптовалют в Excel?

    Да, для этого подойдут сервисы Alpha Vantage или CoinGecko API. Например, в Alpha Vantage используйте функцию DIGITAL_CURRENCY_DAILY с параметрами symbol=BTC и market=USD. В Power Query можно подключиться к API CoinGecko и выгрузить актуальные курсы криптовалют.

    Как обновлять курсы валют в Excel Online?

    В Excel Online доступ к WEBSERVICE, Power Query и макросам ограничен. Альтернативные варианты:

    • Используйте надстройку "Стоки" (доступна в Excel Online).
    • Экспортируйте данные в Google Sheets и используйте функцию =GOOGLEFINANCE().
    • Обновляйте курсы вручную или через Power Automate (Microsoft Flow).
    Как сделать так, чтобы курсы обновлялись при открытии файла?

    Для этого нужно добавить макрос в событие Workbook_Open:

    1. Откройте редактор VBA (Alt+F11).
    2. В окне Project Explorer дважды кликните на ThisWorkbook.
    3. Вставьте код:
      Private Sub Workbook_Open()
      

      Call UpdateCurrencyRates ' Вызов вашего макроса обновления

      End Sub

    4. Сохраните файл как .xlsm.

    Теперь курсы будут обновляться автоматически при каждом открытии файла.

    Можно ли получить курсы валют за прошлые даты?

    Да, для этого подходят:

    • ЦБ РФ: используйте архивные XML-файлы (например, https://www.cbr.ru/scripts/XML_daily.asp?date_req=01/03/2026).
    • ECB: в API можно указать дату (например, https://api.exchangerate-api.com/v4/timeseries/USD/2026-01-01/2026-01-31).
    • Alpha Vantage: функция TIME_SERIES_DAILY_ADJUSTED для исторических данных.

    В Power Query можно настроить параметр даты и подгружать данные за нужный период.

    Как конвертировать сумму из одной валюты в другую автоматически?

    Создайте таблицу с курсами и используйте функцию ВПР или XLOOKUP для конвертации. Пример:

    =XLOOKUP(A2; ТаблицаКурсов[Валюта]; ТаблицаКурсов[Курс]) * B2

    Где:

    • A2 — валюта, из которой конвертируем (например, USD).
    • B2 — сумма в исходной валюте.
    • ТаблицаКурсов — диапазон с актуальными курсами.