Создание конвертера валют в 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. Динамический конвертер с выпадающим списком валют
Чтобы не вводить курс вручную, можно создать выпадающий список с валютами и привязать к нему актуальные курсы. Для этого:
- Создайте на отдельном листе таблицу с курсами валют (например,
USD,EUR,CNYи их текущие значения). - На основном листе добавьте выпадающий список с помощью
Данные → Проверка данных → Список. - Используйте функцию
ВПРилиXLOOKUP, чтобы подтягивать курс выбранной валюты.
Пример формулы для XLOOKUP:
=XLOOKUP(D2;Курсы!A2:A10;Курсы!B2:B10)
Где:
- 📌
D2— ячейка с выбранной валютой; - 📌
Курсы!A2:A10— столбец с названиями валют на листеКурсы; - 📌
Курсы!B2:B10— столбец с их курсами.
Теперь при выборе валюты из списка курс будет подставляться автоматически. Остаётся только умножить сумму на этот курс.
Создать таблицу с курсами на отдельном листе|Дать имя диапазону с валютами (например, "СписокВалют")|В основной таблице выбрать "Проверка данных" → "Список"|Указать источник данных как =СписокВалют|Добавить формулу XLOOKUP для подтягивания курса-->
3. Автоматическое обновление курсов через API Центробанка
Для работы с актуальными курсами можно подключить данные напрямую из Центробанка РФ или других финансовых источников. В Excel 365 и Excel 2021 это делается через Power Query:
- Перейдите на вкладку
Данные → Получить данные → Из других источников → Из веб. - Вставьте URL API Центробанка:
https://www.cbr.ru/scripts/XML_daily.asp - Нажмите
OK, затем выберите таблицу с курсами и загрузите её в Excel. - Создайте связь между этой таблицей и вашим конвертером с помощью
ВПРили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
Чтобы макрос работал:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в модуль (
Insert → Module). - Запустите макрос через
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;
}
Частые ошибки и как их избежать
При создании конвертера валют пользователи часто сталкиваются с типичными проблемами:
- #ЗНАЧ! в формулах — проверьте, что все ячейки со ссылками заполнены. Если курс не подтянулся, оберните формулу в
ЕСЛИОШИБКА:=ЕСЛИОШИБКА(XLOOKUP(D2;Курсы!A:A;Курсы!B:B);"Курс не найден") - API не отвечает — некоторые источники (например, Центробанк) могут блокировать частые запросы. Используйте кэширование или альтернативные API.
- Неверный формат чисел — 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.