Как сделать конвертер валют в Excel: 5 рабочих способов с примерами

Создание конвертера валют в Microsoft Excel или Google Таблицах экономит время бухгалтерам, фрилансерам и предпринимателям, работающим с иностранными партнёрами. Вместо ручного пересчёта по курсу ЦБ или обменникам можно автоматизировать процесс — достаточно один раз настроить таблицу, и она будет обновлять курсы валют в реальном времени или по вашему запросу.

В этой статье разберём 5 способов создания конвертера — от простейшего статического (с фиксированным курсом) до динамического с подтягиванием актуальных данных через API Центробанка или Google Finance. Вы узнаете, как:

  • 📊 Использовать базовые формулы УМНОЖИТЬ и РАЗДЕЛИТЬ для ручного пересчёта;
  • 🔄 Автоматически обновлять курсы валют через веб-запросы;
  • 📈 Создать выпадающий список с валютами для удобного выбора;
  • 💻 Написать макрос на VBA для продвинутых пользователей;
  • 🌍 Интегрировать данные из Google Finance или Yahoo Finance.

Все методы протестированы в Excel 2019–2026 и Google Таблицах. Для новичков подойдут первые два способа, опытным пользователям пригодятся советы по автоматизации с помощью Power Query и VBA.

📊 Как часто вам нужно конвертировать валюты в работе?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда не пользовался

1. Простейший конвертер: фиксированный курс вручную

Если вам не нужен автоматический обновляемый курс, а достаточно пересчитать сумму один раз — этот метод самый быстрый. Подходит для разовых расчётов или работы с историческими данными.

Допустим, у вас есть сумма в долларах (100 USD), и вы хотите узнать её эквивалент в рублях по курсу 90 RUB/USD. Создайте таблицу из трёх столбцов:

Сумма в USD Курс RUB/USD Сумма в RUB
100 90 =A2*B2
50 90 =A3*B3
200 90 =A4*B4

Формула в столбце C умножает сумму в долларах на фиксированный курс. Чтобы изменить курс для всех строк сразу, достаточно обновить значение в ячейке B2 (если курс одинаковый для всех строк).

⚠️ Внимание: Этот метод не подходит для работы с актуальными курсами. Если курс валют меняется ежедневно, вам придётся обновлять его вручную.

Для обратного пересчёта (из рублей в доллары) используйте формулу =A2/B2.

2. Динамический конвертер с выпадающим списком валют

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

  1. Создайте на отдельном листе таблицу с курсами валют (например, USD, EUR, CNY и их текущие значения).
  2. На основном листе добавьте выпадающий список с помощью Данные → Проверка данных → Список.
  3. Используйте функцию ВПР или XLOOKUP, чтобы подтягивать курс выбранной валюты.

Пример формулы для XLOOKUP:

=XLOOKUP(D2;Курсы!A2:A10;Курсы!B2:B10)

Где:

  • 📌 D2 — ячейка с выбранной валютой;
  • 📌 Курсы!A2:A10 — столбец с названиями валют на листе Курсы;
  • 📌 Курсы!B2:B10 — столбец с их курсами.

Теперь при выборе валюты из списка курс будет подставляться автоматически. Остаётся только умножить сумму на этот курс.

Создать таблицу с курсами на отдельном листе|Дать имя диапазону с валютами (например, "СписокВалют")|В основной таблице выбрать "Проверка данных" → "Список"|Указать источник данных как =СписокВалют|Добавить формулу XLOOKUP для подтягивания курса-->

3. Автоматическое обновление курсов через API Центробанка

Для работы с актуальными курсами можно подключить данные напрямую из Центробанка РФ или других финансовых источников. В Excel 365 и Excel 2021 это делается через Power Query:

  1. Перейдите на вкладку Данные → Получить данные → Из других источников → Из веб.
  2. Вставьте URL API Центробанка:
    https://www.cbr.ru/scripts/XML_daily.asp
  3. Нажмите OK, затем выберите таблицу с курсами и загрузите её в Excel.
  4. Создайте связь между этой таблицей и вашим конвертером с помощью ВПР или XLOOKUP.

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

⚠️ Внимание: API Центробанка возвращает данные в формате XML. Если у вас старая версия Excel (до 2016), может потребоваться дополнительная обработка через VBA.

Альтернативный источник — Google Finance. В Google Таблицах используйте функцию:

=GOOGLEFINANCE("CURRENCY:USDRUB")

4. Конвертер с макросом VBA для продвинутых пользователей

Если вам нужно полностью автоматизировать процесс, включая обновление курсов по расписанию, напишите макрос на VBA. Например, этот код подтягивает курс доллара с сайта Центробанка:

Sub UpdateCurrencyRate()

Dim xmlHttp As Object

Dim url As String

Dim response As String

Dim rate As String

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

Set xmlHttp = CreateObject("MSXML2.XMLHTTP")

xmlHttp.Open "GET", url, False

xmlHttp.send

response = xmlHttp.responseText

rate = Mid(response, InStr(response, "USD") + 100, 7)

rate = Replace(rate, ",", ".")

rate = Replace(rate, "<", "")

Sheets("Курсы").Range("B2").Value = rate

End Sub

Чтобы макрос работал:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. Запустите макрос через F5 или назначьте его на кнопку.

Для автоматического обновления добавьте таймер или привяжите макрос к событию открытия файла (Workbook_Open).

Как защитить макрос от ошибок?

Добавьте в начало кода обработку ошибок:

On Error Resume Next

Это позволит избежать сбоев, если сайт Центробанка временно недоступен. Также рекомендуется добавить проверку на пустое значение rate перед записью в ячейку.

5. Конвертер в Google Таблицах с функцией GOOGLEFINANCE

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

=GOOGLEFINANCE("CURRENCY:USDGBP")

Где:

  • 💵 USDGBP — пара валют (из какой в какую конвертировать).
  • 📉 Функция возвращает текущий курс 1 USD = X GBP.

Пример таблицы:

Сумма Из валюты В валюту Курс Результат
100 USD RUB =GOOGLEFINANCE("CURRENCY:USDRUB") =A2*D2
50 EUR USD =GOOGLEFINANCE("CURRENCY:EURUSD") =A3*D3

Функция GOOGLEFINANCE обновляет данные каждые 20 минут, но в таблице изменения отобразятся только после пересчёта (нажмите F9).

6. Продвинутая автоматизация: Power Query + API

Для корпоративных пользователей, работающих с большими объёмами данных, подойдёт решение на основе Power Query (в Excel) или Apps Script (в Google Таблицах). Этот метод позволяет:

  • 🔗 Подключаться к нескольким источникам курсов одновременно;
  • 📅 Сохранять историю курсов для анализа;
  • ⚡ Обновлять данные по расписанию (например, каждый день в 10:00).

Пример запроса в Power Query для API ExchangeRate-API:

let

Источник = Json.Document(Web.Contents("https://api.exchangerate-api.com/v4/latest/USD")),

Курсы = Источник[rates],

ВТаблицу = Record.ToTable(Курсы)

in

ВТаблицу

После загрузки данных в Excel их можно связать с основной таблицей конвертера через ВПР или INDEX/MATCH.

Для Google Таблиц аналогичный функционал реализуется через Apps Script:

function getExchangeRates() {

var url = "https://api.exchangerate-api.com/v4/latest/USD";

var response = UrlFetchApp.fetch(url);

var data = JSON.parse(response.getContentText());

return data.rates;

}

Частые ошибки и как их избежать

При создании конвертера валют пользователи часто сталкиваются с типичными проблемами:

  1. #ЗНАЧ! в формулах — проверьте, что все ячейки со ссылками заполнены. Если курс не подтянулся, оберните формулу в ЕСЛИОШИБКА:
    =ЕСЛИОШИБКА(XLOOKUP(D2;Курсы!A:A;Курсы!B:B);"Курс не найден")
  2. API не отвечает — некоторые источники (например, Центробанк) могут блокировать частые запросы. Используйте кэширование или альтернативные API.
  3. Неверный формат чисел — Excel может воспринимать курс как текст (например, "90,1234" вместо 90.1234). Используйте =ЗАМЕНИТЬ() для замены запятых на точки.

Если конвертер работает медленно, попробуйте:

  • 🐢 Отключить автоматический пересчёт (Формулы → Параметры вычислений → Вручную);
  • 🗑️ Уменьшить количество строк с формулами;
  • 🔄 Обновлять курсы не чаще 1 раза в час.

FAQ: Ответы на популярные вопросы

Можно ли сделать конвертер без интернета?

Да, но курсы придётся обновлять вручную. Используйте метод из первого раздела с фиксированным курсом или загружайте актуальные данные раз в день/неделю через Power Query.

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

В Google Таблицах используйте GOOGLEFINANCE с датой:

=GOOGLEFINANCE("CURRENCY:USDRUB"; "1/1/2023")

В Excel подключите API с историческими данными (например, Alpha Vantage или Fixer.io).

Почему формула XLOOKUP не находит валюту?

Проверьте:

  • 🔍 Регистр букв (должен совпадать с таблицей курсов);
  • 📝 Отсутствие пробелов в названиях валют;
  • 🔢 Формат ячеек (текстовый, а не числовой).
Как защитить файл с конвертером от изменений?

Перейдите в Рецензирование → Защитить лист и установите пароль. Для макросов используйте защиту проекта VBA (в редакторе Tools → VBAProject Properties → Protection).

Можно ли конвертировать криптовалюты?

Да, в Google Таблицах используйте:

=GOOGLEFINANCE("BTCUSD")

Для Excel подключите API CoinGecko или Binance через Power Query.